硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3462|回复: 3
收起左侧

[FreeRTOS] FreeRTOS里面驱动的延时怎么办

[复制链接]

3

主题

3

回帖

12

积分

新手上路

积分
12
发表于 2017-9-25 11:24:16 | 显示全部楼层 |阅读模式
用了RTOS之后,这个问题一直困扰着我,
单片机和DHT12通信,DHT12驱动里面是有延时的,
比如delay_ms(30);之前我都是for{}循环实现这个延时的;
我就想知道这个delay_ms()大家都是怎么处理的,能不换成系统延时函数vTaskDelay()????
现在在写GPRS的驱动,里面又有延时,用来读取AT指令的返回,准备直接发完了delay_ms()等待串口返回,
不知道这样靠不靠谱????
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2017-9-25 11:35:58 | 显示全部楼层
如果你是毫秒级的延迟可以使用函数vTaskDelay,因为一般情况下,我们的FreeRTOS系统时钟节拍都是1ms。

另外,如果此器件对时序要求高,可以将其放到高优先级的任务里面实现,放在被其它任务打断。
回复

使用道具 举报

5

主题

33

回帖

92

积分

初级会员

积分
92
发表于 2017-9-25 17:34:45 | 显示全部楼层
现在在写GPRS的驱动,里面又有延时,用来读取AT指令的返回,准备直接发完了delay_ms()等待串口返回,

这部分可以写两个任务,串口空闲中断打开任务执行一次,自动关闭
回复

使用道具 举报

5

主题

33

回帖

92

积分

初级会员

积分
92
发表于 2017-9-25 17:36:18 | 显示全部楼层
ms秒级延时可以使用,vTaskDelay,us就定时器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 06:25 , Processed in 0.262186 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表