微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 从机添加延时函数的问题

从机添加延时函数的问题

时间: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参考?

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

网站地图

Top