新闻  |   论坛  |   博客  |   在线研讨会
转:单片机模拟38K红外载波注意事项;
0750long | 2010-05-03 21:26:23    阅读:4562   发布文章

 

 

 


为什么用定时器调38kHz老不稳?

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

 

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

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

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

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

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

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

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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客