![]() |
發布時間: 2019-4-9 13:54
正文摘要:請教下大神們: 我用STC89C52RC單片機的定時器0來計時NEC(紅外)脈沖時出現過這種現象準確的問題。 描述: 我在外部中斷0中來計算兩個下降沿之間的時間,在計時1.125ms的脈沖時,定時器 ... |
我也遇到這個問題,100us以下定時,相差幾十個us呢,不知原因為何。 |
yzwzfyz 發表于 2019-4-10 10:06 我有重新整理測量原理,也做了流程圖。沒發現導致這樣結果的邏輯問題 ![]() |
yzwzfyz 發表于 2019-4-10 10:06 好的。我試下,還有就是請問下你這里有流程圖繪制的工具嗎?有的話還請發下 |
樓主:將的的測量原理畫成流程圖,你自己就會發現問題了。 會畫流程圖嗎? |
wc86110 發表于 2019-4-9 17:00 那你所說的精度,應該是定時器計時過短時誤差大。計時長時誤差小。但是我想知道的是這個誤差是怎么來的?因為我定時器計時不是通過定時器中斷計時的。而定時器計時是獨立于CPU運行的,也就是說當進入外部中斷時定時器計數還在運行 |
robinsonlin 發表于 2019-4-9 16:58 51定時器是向上計數的,我用TL0=0x00,TH0=0x00是為了計時NEC紅外脈沖時間的。我也有測量晶振脈沖平均是11.079MHZ(5個12MHZ的脈沖、1個8MHZ脈沖)。關鍵點:當計時短脈沖時,非常不準確。而計時長脈沖時,很準確。我沒有用定時器中斷來計時,按照道理應該不會因為進入中斷而產生的誤差。 |
選用的器件精度不夠當然會出現計時不準確的問題了,玩玩就好別太較真 有的山寨手機一個月誤差十分鐘都有不奇怪 |
TL和TH置零后開啟計數器, 可能存在一些我們不知道的過程, 最好還是TL=0xff ,TH=0xff 試試。這個從0x00 到 0xff的過程,實際上可能并不是我們想象的就是一步之遙。 以上僅是一個猜想。 樓主,我會關注你的結果哦。 我也想弄不明白, 設置0xff為初值,和設置0x00為初值是不是一樣的效果。 |