RT-Thread操作系统导致高速数据丢失

首先,RT是个非常优秀的国产操作系统,她没出现前我都是用UCOS的,虽然用的顺手了,但国产操作系统出现后我就毅然决然的选择了操作系统,一方面觉得架构清晰函数简明,另一方面对国产操作系统情节有点重上手之后差点泪流满面,国产开源东西已经做到此等程度确实让人振奋!

书归正传,这么优秀的操作系统用户面就会很广,我因为工作的原因小型嵌入式系统做的比较多,任务繁琐的情况下会有限考虑使用操作系统来简化任务调度。

问题是这样出现的:

耐心看完,用嵌入式操作系统的一定会有帮助的!

在做一个项目,用到STM32F407 的捕获功能,用rt-thread-3.1.3,只用最基础的内核,任何组件都不使用,对一个非周期脉冲进行数据记录,上升沿下降沿都捕获,分别记录脉冲的高低电平宽度,进入片子的脉冲是调制过的,所以波形数据我知道,对记录后的数据也有预期,但发现总是会丢几个脉冲。

然后我用函数发生器产生一个占空比50%的方波束,频率10K数量10000,进行测试,测试结果正常,增加频率,20K正常,50K正常。直接上100k,然后发现丢数了……10000个脉冲只记录到了9k多,查记录到的脉宽数据,本来应该是高低电平各5us,但中间会夹杂着10us的宽度。

捕获计时时钟我用的1us所以误差1~2个us是可以接受的,但大了一倍,而且每次都是一倍就很蹊跷了,继续查数据,发现9k多的脉冲数据丢的那部分脉冲都是被这么吃掉的。

重点来了。我是这样排故的!

首先,怀疑是函数发生器发出的脉冲有问题,用示波器查看波形一切正常。减少脉冲数量,每次只发出100个脉冲,ARM捕获没问题,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值