OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5305|回复: 5

FreeRTOS 如何实现500US秒采集一次AD值的任务。

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-12-9
在线时间
3 小时
发表于 2020-3-4 15:36:32 | 显示全部楼层 |阅读模式
1金钱
有一个AD采集,需要500US去采集一次。这个在FreeRTOS如何实现呢。。因为FreeRTOS任务的最小时间单位不是毫秒吗?那微妙的任务如何实现?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-3-4 17:15:55 | 显示全部楼层
1、创建一个接收信号量的任务
2、开启一个定时器,定时器每隔500US给上面的任务发送信号量

   当任务收到信号量后,开始采样
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-3-4 17:31:09 | 显示全部楼层
参见《基于嵌入式实时操作系统的程序设计技术》-周慈航 第3版,专门有论述。

   1、当采样时间为1个时钟节拍时,使用钩子函数API
   2 、当打样时间低于1个时钟节拍时,用硬件定时器
   3、当采样时间要求很长,用周期性任务,调用延时节拍函数vTaskDelay
回复

使用道具 举报

5

主题

424

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1020
金钱
1020
注册时间
2014-9-4
在线时间
199 小时
发表于 2020-3-4 17:43:44 | 显示全部楼层
霸王猫 发表于 2020-3-4 17:31
参见《基于嵌入式实时操作系统的程序设计技术》-周慈航 第3版,专门有论述。

   1、当采样时间为1个时钟 ...

五笔用户???
https://github.com/WZTENG
回复

使用道具 举报

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10542
金钱
10542
注册时间
2017-2-18
在线时间
1908 小时
发表于 2020-3-4 21:50:22 | 显示全部楼层
2楼的方法可以
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
发表于 2020-3-18 08:35:58 | 显示全部楼层
FreeRTOS没有规定最小时间单位是毫秒啊,FreeRTOS是在滴答定时器中断中触发PendSV中断,在PendSV中断中切换任务。切换任务的频率取决于滴答定时器的中断频率。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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