专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

从错误中成长

作者:jkex54   来源:本站原创   点击数:  更新时间:2010年05月13日   【字体:

 最近弄一个灯的程序。我们都知道,世界上是没有两样完全相同的东西。因此晶振也是有误差的,即使是1%,在运行一段时候后,都会使有些灯可能跑得快些,而些灯跑得慢些。这样的话,一段时间下来,几个灯放在一起就会出现五颜六色的情况。这是不允许的。

   既不允许增设信号线,又要同步。最简便的方法便是在交流电中取一个交流电过零信号作为灯与灯之间的同步信号。但是,在写这个程序的时候我犯了一个严重的错误。这个错误使的我的程序让灯与灯之间的同步时间不长,调试得好的时候可以做到一两小时,但是恶劣的情况下会更短。我却将问题归结于市电的频率太低,同步必然存在误差,这是无可避免的。我做过各种实验,将程序改来改去。简直是大修。直到我做了一个实验。因为我们都知道,我国市电的频率是50HZ的,即使有偏差,也在正负5HZ内。因此市电整流后是100HZ的脉动直流电。因些,我实验用单片机去测试6000个过零信号。理论上,6000个过零信号是要1分钟才能完成的。但实际上,单片机却是48秒内检测完了。怎么会快这么多的呢。一定是干扰脉冲加入了,使得6000个信号提早完成。

   在别的方法都不能起作用的时候,我尝试让单片机多检测几次同步信号得到的结果是否都为高或都为低,居然一试成功,好高兴。虽然走了弯路,但是人都是会犯错误的,我原谅我自己。但是犯了错误,我都习惯写到本子上,以后再遇到这样的问题,先看看,以前有没有类似的情况。

关闭窗口

相关文章