專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

從錯(cuò)誤中成長(zhǎng)

作者:jkex54   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年05月13日   【字體:

 最近弄一個(gè)燈的程序。我們都知道,世界上是沒有兩樣完全相同的東西。因此晶振也是有誤差的,即使是1%,在運(yùn)行一段時(shí)候后,都會(huì)使有些燈可能跑得快些,而些燈跑得慢些。這樣的話,一段時(shí)間下來,幾個(gè)燈放在一起就會(huì)出現(xiàn)五顏六色的情況。這是不允許的。

   既不允許增設(shè)信號(hào)線,又要同步。最簡(jiǎn)便的方法便是在交流電中取一個(gè)交流電過零信號(hào)作為燈與燈之間的同步信號(hào)。但是,在寫這個(gè)程序的時(shí)候我犯了一個(gè)嚴(yán)重的錯(cuò)誤。這個(gè)錯(cuò)誤使的我的程序讓燈與燈之間的同步時(shí)間不長(zhǎng),調(diào)試得好的時(shí)候可以做到一兩小時(shí),但是惡劣的情況下會(huì)更短。我卻將問題歸結(jié)于市電的頻率太低,同步必然存在誤差,這是無可避免的。我做過各種實(shí)驗(yàn),將程序改來改去。簡(jiǎn)直是大修。直到我做了一個(gè)實(shí)驗(yàn)。因?yàn)槲覀兌贾,我國市電的頻率是50HZ的,即使有偏差,也在正負(fù)5HZ內(nèi)。因此市電整流后是100HZ的脈動(dòng)直流電。因些,我實(shí)驗(yàn)用單片機(jī)去測(cè)試6000個(gè)過零信號(hào)。理論上,6000個(gè)過零信號(hào)是要1分鐘才能完成的。但實(shí)際上,單片機(jī)卻是48秒內(nèi)檢測(cè)完了。怎么會(huì)快這么多的呢。一定是干擾脈沖加入了,使得6000個(gè)信號(hào)提早完成。

   在別的方法都不能起作用的時(shí)候,我嘗試讓單片機(jī)多檢測(cè)幾次同步信號(hào)得到的結(jié)果是否都為高或都為低,居然一試成功,好高興。雖然走了彎路,但是人都是會(huì)犯錯(cuò)誤的,我原諒我自己。但是犯了錯(cuò)誤,我都習(xí)慣寫到本子上,以后再遇到這樣的問題,先看看,以前有沒有類似的情況。

關(guān)閉窗口

相關(guān)文章