为什么用定时器调38kHz老不稳?--pilibeibei的笔记

最近自己搞红外线玩,想用载波,却发现用定时器调的38kHz老不稳。想来想去,肯定是这样做有问题,但没弄明白是什么问题。在某论坛发现一哥们对别人帖子的回复给了我xx的答案。回复如下:

 

如果你用于民用产品,这并没什么问题,但你做工业级甚至xxx产品时(xxx不等于用于真的用于军工),这里面其实有些问题存在:

51单片机要响应一个中断,必须要执行完当前正在执行的指令,而当前执行的指令从1机器周期到4个机器周期不等,假如你的主频高,这个时间可以忽略,但你用的是11059K晶振,这就意味着在中断响应时,会有1~4uS的不固定延迟.
虽然你使用了自动重装方式,可以xx地保证平均周期与预期值相等,但实际产生的波形是宽的宽窄的窄,相当于在38K基频上混入了一个随机噪声频谱(26uS+-2uS),它带来的效果不清楚,也许是通信距离缩短.

很多工业控制程序里,在某些区域会大量使用NOP指令,为的就是在中断发生的前后正好执行到nop区域,保证时序的xx.

很多产品的检测比较严格,别等产品的规模测试都做完了,以为没啥事了,结果却被这些细枝末节的小问题郁闷个好些天.

这并不是什么大问题,只是我认为做硬件必须养成严谨的习惯,所以把这些细节分享给大家.

原因的确如这位哥们说的那样,51指令在执行的过程中会给中断带来随机的延时。我做了一个反推理,写了一个程序,只做脉冲输出口自动反转,别的什么也不干,此时再用示波器测出来的38kHz就相当的稳了,基本在0.5kHz以内跳动。

我想调38kHz还是另想他法吧。

 

 

郑重声明:资讯 【为什么用定时器调38kHz老不稳?--pilibeibei的笔记】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——