搜索
bottom↓
回复: 20

使用UCOSIII的时候,能否得到准确的100KHz的定时

[复制链接]

出0入53汤圆

发表于 2014-8-28 14:40:53 | 显示全部楼层 |阅读模式
本帖最后由 zhcj66 于 2014-8-28 14:44 编辑

现在遇到一个解码问题,要求有一个准确的100KHz定时器。在不使用UCOSIII系统的时候定时器10us±0.1,当使用UCOSIII后硬件定时器误差直接造成无法使用,最短定时9.3us 最长12.4us 隔5个出现一个12.4us。
我对UCOSIII时间要求不是很高,就是对100KHz的定时时间要求高些,我能否在即保证100KHZ准确的前提下,使用UCOSIII?
如果能实现请问如果改动呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2014-8-28 16:54:47 | 显示全部楼层
UCOS III不熟,FreeRTOS可以使用比调度器更高优先级的中断,把定时器中断优先级设高不就好了?

出0入0汤圆

发表于 2014-8-28 17:54:57 | 显示全部楼层
和这个木有关系,和你的CPU有关系......如果你CPU的时钟是几百M的话,就木有问题,如果是几十M,在怎么搞,都木有用,即使你用硬件定时器都没法解决.....10us一个中断,太频繁了.......

出0入0汤圆

发表于 2014-8-28 17:55:48 | 显示全部楼层
UCOS里面有个时间片,类似“心跳”不知道能不能解决这个

出0入53汤圆

 楼主| 发表于 2014-8-29 07:42:27 | 显示全部楼层
RainKing 发表于 2014-8-28 17:54
和这个木有关系,和你的CPU有关系......如果你CPU的时钟是几百M的话,就木有问题,如果是几十M,在怎么搞, ...

系统时钟是72MHz

出0入0汤圆

发表于 2014-8-29 08:20:54 | 显示全部楼层
我晕,我以为是100K的方波,那肯定可以出,用硬件PWM即可;
如果是100K的时间,你就算了吧,100K是什么概念, us级的延时,最好不要用UCOS来做!做了最后也会哭的;

出0入53汤圆

 楼主| 发表于 2014-8-29 08:32:29 | 显示全部楼层
kinsno 发表于 2014-8-29 08:20
我晕,我以为是100K的方波,那肯定可以出,用硬件PWM即可;
如果是100K的时间,你就算了吧,100K是什么概念, us级 ...

现在就有些哭的感觉,100K的定时器 定时去处理一段很短的解码程序。如果裸奔的话,怎么去做到MP3播放呢,还有刷屏。真是郁闷,有点想用LPC4357的冲动

出0入0汤圆

发表于 2014-8-29 09:14:00 | 显示全部楼层
zhcj66 发表于 2014-8-29 08:32
现在就有些哭的感觉,100K的定时器 定时去处理一段很短的解码程序。如果裸奔的话,怎么去做到MP3播放呢, ...

是做声音解码么,虽然没有做过声音解码,貌似可以解一段的吧......缓冲什么的,最好是用在哪方面说一下......你这个是10us一中断,如果进入中断,出中断,中断处理这个过程需要5us,换一句说就是,1s内,有500ms在处理这个事情.....你这太占用CPU了....如果用UCOS,占用的时间更多,因为堆栈切换比进中断要更花时间(一般情况下).....

出0入53汤圆

 楼主| 发表于 2014-8-29 09:17:47 | 显示全部楼层
RainKing 发表于 2014-8-29 09:14
是做声音解码么,虽然没有做过声音解码,貌似可以解一段的吧......缓冲什么的,最好是用在哪方面说一下.. ...

现在考虑要么用双核,要么用2个stm32f1 一个专门做解码,挺起来有些蛋疼。做433Mhz解码

出0入0汤圆

发表于 2014-8-29 09:23:22 | 显示全部楼层
定时器的中断优先级一定要高于ucos的系统优先级, 这样ucos的临界代码不会关闭定时器中断.

出0入0汤圆

发表于 2014-8-29 09:25:00 | 显示全部楼层
zhcj66 发表于 2014-8-29 09:17
现在考虑要么用双核,要么用2个stm32f1 一个专门做解码,挺起来有些蛋疼。做433Mhz解码 ...

我也觉得,一个专门解码加数据传送....可以用SPI进行数据通信.....如果数据量满足的话,当然也可以用几百M的CPU也是可以的,那时候10us一个中断,在中断里面处理时间也不会很长了...............

出0入0汤圆

发表于 2014-8-29 09:28:22 | 显示全部楼层
与用哪个OS有屁个关系啊,如果是方波,直接一个定时器完成,如果是程序可变方波,直接一个最高中断+方波产生数组+指针完成,程序生成数组,中断消耗数组,就这样完了

出0入0汤圆

发表于 2014-8-29 09:29:14 | 显示全部楼层
其实主要是看需要的,比如你的72MHZ的,如果每10us一个中断,并且进中断,中断处理,出中断,这个时间大约是5us左右,并且整个其他程序也没有对时间要求非常严格的话,也是可以满足的.....这个都是根据你的需求来看的....我们也只是说说而已....

出0入0汤圆

发表于 2014-8-29 09:35:17 | 显示全部楼层
感觉还是没有说清楚,再补充一句,就是说中断频繁是没问题,如果中断频繁不影响你的其他部分,并且中断处理占用时间并不多.....换一句话说,就如果你能把CPU处理器的时间合理的分配出来,如果可以达到你项目的要求,那么这个芯片就满足,如果不行,就需要换CPU,或者另外加特殊处理芯片......

出0入0汤圆

发表于 2014-8-29 09:38:40 | 显示全部楼层
楼主的问题是因为os关闭了中断引起的, 还是要合理分配os中断优先级.

出100入101汤圆

发表于 2014-8-29 10:25:32 | 显示全部楼层
最好找专门的解码芯片,或自己用cpld或fpga来做,单片机开一个10us的定时器,执行不了多少指令。

出0入0汤圆

发表于 2014-8-29 11:43:17 | 显示全部楼层
zhcj66 发表于 2014-8-29 08:32
现在就有些哭的感觉,100K的定时器 定时去处理一段很短的解码程序。如果裸奔的话,怎么去做到MP3播放呢, ...

如果你用定时器中断,我觉得是没有问题的啊,当然这个中断级别必须是最高的,不被OS打断折,更重要的是你这段解码程序在最复杂时间最长的前提下也不能超过10US的执行时间啊;否则裸奔你也白搭,更别提OS!

出0入53汤圆

 楼主| 发表于 2014-8-29 14:24:13 | 显示全部楼层
kinsno 发表于 2014-8-29 11:43
如果你用定时器中断,我觉得是没有问题的啊,当然这个中断级别必须是最高的,不被OS打断折,更重要的是你这段 ...

最长20个时钟周期,现在加大了容错率,可以在ucosiii正常运行了。具体稳定性还需要继续测试中。实在不行我就上2个单片机——双核 ,毕竟单片机便宜。

出0入0汤圆

发表于 2015-1-7 09:40:51 | 显示全部楼层
太强大了,弱弱的问下,双核如何做到运行频率更高???

出0入53汤圆

 楼主| 发表于 2015-1-8 08:13:14 | 显示全部楼层
ithinkgod987 发表于 2015-1-7 09:40
太强大了,弱弱的问下,双核如何做到运行频率更高???

超频        

出0入0汤圆

发表于 2015-1-21 09:37:17 | 显示全部楼层
哥,就算你不用系统,你想在10US做中断,可能性都不是很大,STM32中断延迟都有3US左右,是不确定的。 我实际测试  25US 以上比较可靠。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-13 18:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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