微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于osal_start_timerEx的疑问

关于osal_start_timerEx的疑问

时间:10-02 整理:3721RD 点击:

在OSAL 下使用官方demo测试osal_start_timerEx函数,发现在其前面增加一个延时相当的延时程序时,发现osal_start_timerEx是不起作用的。原因是什么呢?

程序如下:

DelaynMS(5000);   //加此延时后 osal_start_timerEx不起作用.DelaynMS(5000)后 LED马上进入闪烁(并非会再等                             // 待5s再闪烁)。
                            //如果去掉DelaynMS(5000),则正常,会先延时5s后亮LED,一直等待到5s后再进入闪烁。

HalLedSet( (HAL_LED_1), HAL_LED_MODE_ON );  //点亮LED,以确认5s延时结束

osal_start_timerEx(SimpleBLETest_TaskID, SBP_START_DEVICE_EVT,5000); //经过5s后,闪烁

补充一下:这几行程序是放在任务初始化当中的(SimpleBLETest_Init),而不是大循环当中

测试发现osal_start_timerEx真正的延时时间是DelaynMS延时的时间减去osal_start_timerEx的时间。

顶起来啊~~

啥意思

看以上图片,应该可以看到我说的情况。本来DelaynMS处是一个EEPROM读写操作的,同样也有这样的问题。现在用DelaynMS取代EEPROM读写,模拟这一过程。不知是什么原因,感觉在DelaynMS处就开了osal_start_timerEx定时,osal_start_timerEx真正的定时时间是要减去DelaynMS的时间。

顶起~~~

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

网站地图

Top