This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2540 无法停止定时器



我的代码如下:

#define   FAST_LED_PERIOD       (500)           /* 200ms */
#define  SLOW_LED_PERIOD  (1000)   /* 1s */
#define   ADVERTISING_PERIOD    (1000*4)     /* 1min */

uint16 LedAdvertising_ProcessEvent(uint8 task_id, uint16 events)
{
  static uint32 led_count;
  static uint8 led_mask = 0x0f;
  static uint8 led_value = 0x0f;
  uint16 sum = 0;
 
  if (events & ADVERTISING_EVENT)
  {
    osal_start_timerEx(LedAdvertising_TaskID, FAST_LED_EVENT, FAST_LED_PERIOD);
 
 return (events ^ ADVERTISING_EVENT);
  }
  if (events & FAST_LED_EVENT)
  {
 sum = (led_count * FAST_LED_PERIOD);
   //   if ((led_count * FAST_LED_PERIOD) < ADVERTISING_PERIOD)
    if (sum < ADVERTISING_PERIOD)
      {
  led_count++;
  led_value = ~led_value;
  set_led(led_mask, led_value);
      }
      else
   {
        led_count = 0;
  osal_stop_timerEx(LedAdvertising_TaskID, FAST_LED_EVENT);  
   }
  
   return (events ^ FAST_LED_EVENT);
  }

请教一下,为什么调用osal_stop_timerEx(LedAdvertising_TaskID, FAST_LED_EVENT);   函数无法把定时器停下来