OpenEdv-开源电子网

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

ucosiii实现100us轮询一次子函数吗

[复制链接]

18

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2017-1-18
在线时间
180 小时
发表于 2017-2-20 14:07:55 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 1253171658 于 2017-2-20 14:48 编辑

新手,对UCOS不太熟,最近想把以前编写的程序改为UCOSIII的。其中有些子程序控制精度达到微秒级(几十到几百微秒精度要进入子程序执行一次),UCOSIII可以实现吗?
程序包括(数据解析模块,控制模块,外部传感器检测模块),数据解析模块:主要是4路串口接收的数据解析,这个为了保证数据能够及时解析,可以把它的优先级设为最低,不设轮询时间。控制模块也就4个,精度要求较高。外部传感器检测模块,可以设置20MS轮询一次。因为有两个地方速度要求快,如果把他们合并在一起,把优先级设置为最低,那感觉没用到UCOS一样。

最佳答案

查看完整内容[请看2#楼]

没有这样的函数。 理论上可行,不过非常不建议。。。这样 严重 影响CPU的执行效率。大部分时间将损耗的在任务切换上了(每秒钟要切换10000次)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165580
金钱
165580
注册时间
2010-12-1
在线时间
2118 小时
发表于 2017-2-20 14:07:56 | 显示全部楼层
没有这样的函数。
理论上可行,不过非常不建议。。。这样 严重 影响CPU的执行效率。大部分时间将损耗的在任务切换上了(每秒钟要切换10000次)
回复

使用道具 举报

70

主题

6769

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13218
金钱
13218
注册时间
2012-11-26
在线时间
3823 小时
发表于 2017-2-20 14:12:31 | 显示全部楼层
ucos2 最低就是1ms吧  你以前是怎么达到us级的?
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2017-2-20 14:14:25 | 显示全部楼层
us级的延时可以通过死等来解决。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

5

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
284
金钱
284
注册时间
2016-8-5
在线时间
158 小时
发表于 2017-2-20 14:16:34 | 显示全部楼层
东北小辉辉 发表于 2017-2-20 14:14
us级的延时可以通过死等来解决。

楼主说,us级轮询一次
回复

使用道具 举报

18

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2017-1-18
在线时间
180 小时
 楼主| 发表于 2017-2-20 14:17:43 | 显示全部楼层
jermy_z 发表于 2017-2-20 14:12
ucos2 最低就是1ms吧  你以前是怎么达到us级的?

以前不是用UCOS写的
回复

使用道具 举报

18

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2017-1-18
在线时间
180 小时
 楼主| 发表于 2017-2-20 14:20:25 | 显示全部楼层
东北小辉辉 发表于 2017-2-20 14:14
us级的延时可以通过死等来解决。

不想死等,如果那样我不想用UCOS,在100US以上不想用延时,现在没用UCOS都是100US左右可以所有子函数遍历一遍。
回复

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2017-2-20 14:43:08 | 显示全部楼层
jermy_z 发表于 2017-2-20 14:12
ucos2 最低就是1ms吧  你以前是怎么达到us级的?

为什么最低是1ms?时钟节拍可以自己修改的吧?
回复

使用道具 举报

70

主题

6769

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13218
金钱
13218
注册时间
2012-11-26
在线时间
3823 小时
发表于 2017-2-20 15:05:14 | 显示全部楼层
msq001 发表于 2017-2-20 14:43
为什么最低是1ms?时钟节拍可以自己修改的吧?

1000ms/1000  你觉得1000ms除以1000以上的数字能有结果?
学无止境
回复

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2017-2-20 15:08:49 | 显示全部楼层
jermy_z 发表于 2017-2-20 15:05
1000ms/1000  你觉得1000ms除以1000以上的数字能有结果?

这两个1000都是可以改的吧?如果是用滴答定时器提供时钟,把嘀嗒定时器的中断设置为us级别的就可以了
回复

使用道具 举报

70

主题

6769

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13218
金钱
13218
注册时间
2012-11-26
在线时间
3823 小时
发表于 2017-2-20 15:46:03 | 显示全部楼层
msq001 发表于 2017-2-20 15:08
这两个1000都是可以改的吧?如果是用滴答定时器提供时钟,把嘀嗒定时器的中断设置为us级别的就可以了

你觉得可以就可以
学无止境
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2017-2-20 16:25:18 | 显示全部楼层
记得之前阿mo论坛上有人给ucos的节拍在30几us,好像没有问题,楼主可以尝试一下。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2017-2-21 16:01:34 | 显示全部楼层
这个太夸张了,us级,估计问题一堆,时间都耗在切换线程了,我都是用10ms
回复

使用道具 举报

18

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2017-1-18
在线时间
180 小时
 楼主| 发表于 2017-2-21 18:31:04 | 显示全部楼层
hgr211 发表于 2017-2-21 16:01
这个太夸张了,us级,估计问题一堆,时间都耗在切换线程了,我都是用10ms

请问那是不是可以放弃用UCOS呢?现在没用UCOS性能还不是很差
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2017-2-21 18:40:06 | 显示全部楼层
本帖最后由 东北小辉辉 于 2017-2-21 18:55 编辑
1253171658 发表于 2017-2-21 18:31
请问那是不是可以放弃用UCOS呢?现在没用UCOS性能还不是很差

楼主为什么一定要上OS呢,是否现在的裸机程序里面有阻塞的地方?
如果程序不阻塞,感觉你的需求可以被满足呀?能否详细的将遇到的问题说说,最好能在裸机上直接解决,如果用OS的话,整个程序的结构就要被改变,任务要重新划分,感觉花费时间比较多。

想了一下,楼主说程序主要分成三个任务,数据解析模块,控制模块,外部传感器检测模块,感觉实时性都不是很高呀。

半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-2-21 19:54:03 | 显示全部楼层
这种情况当然是用中断的时候来了.搞个定时器,定时执行你的函数
回复

使用道具 举报

18

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2017-1-18
在线时间
180 小时
 楼主| 发表于 2017-2-21 21:13:14 | 显示全部楼层
东北小辉辉 发表于 2017-2-21 18:40
楼主为什么一定要上OS呢,是否现在的裸机程序里面有阻塞的地方?
如果程序不阻塞,感觉你的需求可以被满 ...

现在是裸机,性能还好。但是别人说UCOS肯定比我现在写的好,我又无力反驳,毕竟UCOS都是无数前辈验证了的。
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2017-2-22 11:16:42 | 显示全部楼层
平常的顺序结构,可能一个循环,特殊情况会耗时久,功能多了,会影响使用。可以自己去看书,求人不如求己。我都是自学
回复

使用道具 举报

18

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2017-1-18
在线时间
180 小时
 楼主| 发表于 2017-2-23 08:33:17 | 显示全部楼层
正点原子 发表于 2017-2-20 14:07
没有这样的函数。
理论上可行,不过非常不建议。。。这样 严重 影响CPU的执行效率。大部分时间将损耗的在 ...

第一次有原子哥的评论,幸福来得太突然!谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-9-22 16:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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