示例#1
0
文件: main.c 项目: zhouglu/K60F120M
static void event(void)
{
#if MQX_USE_EVENTS
   IF_TINIEST(pointer  handle=0);
   IF_TINIEST(_mqx_uint value=0);

   IF_SMALL(_event_create_component(1, 1, 1));
   IF_SMALL(_event_create_fast(1));
   IF_SMALL(_event_create_fast_auto_clear(1));
   IF_SMALL(_event_open("e", &handle));
   IF_SMALL(_event_set(handle, 0));
   IF_SMALL(_event_clear(handle, 0));
   IF_SMALL(_event_wait_all(handle, 0, 0));

   IF_TYPICAL(_event_close(handle));
   IF_TYPICAL(_event_create("e"));
   IF_MAX(_event_create_auto_clear("e"));
   IF_TYPICAL(_event_destroy("e"));
   IF_MAX(_event_destroy_fast(1));
   IF_MAX(_event_get_value(handle, &value));
   IF_MAX(_event_get_wait_count(handle));
   IF_MAX(_event_open_fast(1, &handle));
   IF_MAX(_event_test(&handle));
   IF_MAX(_event_wait_all_for(handle, 0, NULL));
   IF_TYPICAL(_event_wait_all_ticks(handle, 0, 0));
   IF_MAX(_event_wait_all_until(handle, 0, NULL));
   IF_MAX(_event_wait_any(handle, 0, 0));
   IF_MAX(_event_wait_any_for(handle, 0, NULL));
   IF_TYPICAL(_event_wait_any_ticks(handle, 0, 0));
   IF_MAX(_event_wait_any_until(handle, 0, NULL));
#endif

}
示例#2
0
void EventB
   (
      uint32_t   parameter
   )
{
   _mqx_uint  event_result;
   void      *Event1_handle;

   /* open connection to event event.Event1 */
   event_result = _event_open("event.Event1",&Event1_handle);
   if (event_result != MQX_OK) { 
      /* could not open event.Event1  */
   } /* endif */

   /* 
   ** LOOP - 
   */
   while ( TRUE ) {
      /* wait on event event.Event1 */
      event_result = _event_wait_all_ticks(Event1_handle, 1, NO_TIMEOUT);
      if (event_result != MQX_OK) { 
         /* waiting on event event.Event1 failed */
      } 
         /* clear the event bits after processing event */
      event_result = _event_clear(Event1_handle, 1);
   } /* endwhile */ 
} /*end of task*/
示例#3
0
/*  pin2 int callback function */
void int_callback(void) 
{
  pointer ppin2_event;
  _event_open("pin2_event",&ppin2_event);
  _event_set(ppin2_event,0x04);
  
  printf("Switch2 is pressed(int mode)!\n");
}
示例#4
0
void simulated_ISR_task 
   (
      uint32_t initial_data
   )
{
   void   *event_ptr;

   /* open event connection */
   if (_event_open("event.global",&event_ptr) != MQX_OK)  {
      printf("\nOpen Event failed");
      _task_block();
   }

   while (TRUE) {
      _time_delay_ticks(200);
      if (_event_set(event_ptr,0x01) != MQX_OK) {
         printf("\nSet Event failed");
         _task_block();
      }
   }
}
示例#5
0
void service_task 
   (
      uint32_t initial_data
   )
{
   void    *event_ptr;
   _task_id second_task_id;

   /* Set up an event group */
   if (_event_create("event.global") != MQX_OK) {
      printf("\nMake event failed");
      _task_block();
   }
   if (_event_open("event.global", &event_ptr) != MQX_OK) {
      printf("\nOpen event failed");
      _task_block();
   }

   /* Create the ISR task */
   second_task_id = _task_create(0, ISR_TASK, 0);
   if (second_task_id == MQX_NULL_TASK_ID) {
      printf("Could not create simulated_ISR_task \n");
      _task_block();
   }

   while (TRUE) {
      if (_event_wait_all_ticks(event_ptr, 0x01, 0) != MQX_OK) {
         printf("\nEvent Wait failed");
         _task_block();
      }

      if (_event_clear(event_ptr,0x01) != MQX_OK) {
         printf("\nEvent Clear failed");
         _task_block();
      }
      printf(" Tick \n");
   }
}  
示例#6
0
/*******************************************************************************
** Function Name	:uart_isr
** Input		:
** Return		:
** Author		:wk
** Version	:
** Date		:
** Dessription	:
** Reverse	:
*******************************************************************************/
void uart_isr(pointer parameter)
{
#if 1   // wk -->  在有些工程中没有定义read_buf[]和LCDTouchSel()  --> 0 else --> 1
  /* Body */
   IO_SERIAL_INT_DEVICE_STRUCT_PTR        int_io_dev_ptr = parameter;
   KUART_INFO_STRUCT_PTR                  sci_info_ptr = int_io_dev_ptr->DEV_INFO_PTR;
   UART_MemMapPtr                         sci_ptr = sci_info_ptr->SCI_PTR;
   /*
   ** author: wk @2012-10-03
   ** description: 和上面三行的功能相同
   */
//    UART_MemMapPtr                         sci_ptr; 
//    sci_ptr=(UART_MemMapPtr)UART4_BASE_PTR;  //wk
    
    volatile int_32                        c;


   /* try if RX buffer has some characters */
#if 0  // wk _system
   if (sci_ptr->S1 & UART_S1_RDRF_MASK) {
      c = sci_ptr->D;
//        printf("c=%x\n",c);
      if (!_io_serial_int_addc(int_io_dev_ptr, c)) {
          sci_info_ptr->RX_DROPPED_INPUT++;
      }
      sci_info_ptr->RX_CHARS++;
   }
#endif 
   
#if 1 // wk --> data rec
 static   uchar  i=0,flag=0;
//  do  
   {
   if (sci_ptr->S1 & UART_S1_RDRF_MASK) {
      c = sci_ptr->D;
      
      if(c == 0xaa || flag==1)  //第一个数据是 0xaa 开始标志才开始接收
      {
          read_buffer[i++]= c ;
          flag=1;
      }
      
      if (!_io_serial_int_addc(int_io_dev_ptr, c)) {
          sci_info_ptr->RX_DROPPED_INPUT++;
      }
      sci_info_ptr->RX_CHARS++;
   }
   }
//   while(c != 0x3c);
#endif  // wk --< data rec
   
#define UART_EVENTTEST 1
#if !UART_EVENTTEST
    if(i == 8) 
    {
      i=0;flag=0;
      LCDTouchSel(); // 触摸屏按键判断程序
    }
#endif // !UART_EVENTTEST

   
#if UART_EVENTTEST
    if(i == 8) 
    {
      i=0;flag=0;     
      pointer puart_event;
      
#ifdef _UART_DBUG_      
      if(_event_open("uart_event",&puart_event) != MQX_OK)
      {
        printf("\n Open event failed of serl_int_kuart.c");
      }
      else 
        printf("\n Open event OK of serl_int_kuart.c");
      
      if (_event_set(puart_event,0x01) != MQX_OK) {
         printf("\n Set Event failed of serl_int_kuart.c");
      }  
      else
         printf("\n Set Event OK of serl_int_kuart.c");
#endif
      
#ifndef _UART_DBUG_
      _event_open("uart_event",&puart_event);
      _event_set(puart_event,0x01);
#endif
    }
#endif // UART_EVENTTEST
   
#endif  
}