从机添加延时函数的问题
时间:10-02
整理:3721RD
点击:
在从机程序中任务函数添加延时函数,会出现导致mcu挂起的情况,请问如果某个程序需要等待一段延时,怎么在从机程序中添加这个延时呢?以下是个程序例子(在任务函数中调用):
char GetData(void)
{
char a ;
senddata();//调用子函数
delay(1000);//延时等待
if(a==1)
{
return 0;
}
return 1;
}
Hi waiting
这个得取决于你程序设计的一些小技巧了。
个人建议:将一个过程任务进行分片,延时可以考虑使用osal_start_timerEx();来实现定时事件。
waiting,
用timer吧,delay会让系统挂起,因为本质上这是个8051的轮询机制,单线程的。
是不是开启了osal_start_timerEx(),系统还是会运行其他程序,待延时时间到达时,再回来处理?如果分片,不是要定义多个任务函数或者定义标志位,这样会提高程序的复杂性的吧
Yan
用timer来延时好像挺复杂的,在那个点可以开启定时器,但程序又不能停在那里等待。我发现好像初始化这些有延时函数并不会导致蓝牙断开。
Yan
我发现从机程序中haL_timer.h提供了API,但是hal_timer.c文件确是空白的,是要用户自己编写吗?如果是,有没有已经做好的demo参考?
栏目分类
射频专业培训教程推荐