微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC2540 无法停止定时器

CC2540 无法停止定时器

时间:12-22 整理:3721RD 点击:

我的代码如下:

#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);   函数无法把定时器停下来

你确定这个函数被调用了吗?设个断点试试。

ADVERTISING_EVENT是什么事件? 如果这个事件发生,你的定时器又被启动。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top