音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

定時(shí)器定時(shí)總是比預(yù)定時(shí)間提前,這是啥毛?

作者:sambie 欄目:單片機(jī)
定時(shí)器定時(shí)總是比預(yù)定時(shí)間提前,這是啥毛。
我用定時(shí)器控制LED的開(kāi)和關(guān),定時(shí)1小時(shí),可LED總是提前開(kāi)和關(guān),誤差超過(guò)1秒/小時(shí)。按理調(diào)整初值時(shí)應(yīng)該將計(jì)算值增加幾個(gè)機(jī)器周期,否則定時(shí)會(huì)向后推遲。可我不增加初值定時(shí)器仍然提前,這是什么道理?是晶振(12MHZ)不準(zhǔn)嗎?

2樓: >>參與討論
tyw
你用什么方法測(cè)的
 
3樓: >>參與討論
hotpower
用自動(dòng)裝載方式好些
 
4樓: >>參與討論
sambie
回tyw和hotpower,我用秒表測(cè)的。
自動(dòng)裝載我沒(méi)試過(guò),但調(diào)整初值應(yīng)該也能將誤差控制得較小。我感到不解的是,誤差應(yīng)該是推遲才對(duì)呀,怎么會(huì)是提前呢?

5樓: >>參與討論
css93
sambie
老大,說(shuō)一句啊,嚴(yán)謹(jǐn)?shù)木裰档镁磁灏?br>不過(guò)我覺(jué)得你這個(gè)秒表測(cè)這個(gè)時(shí)間居然能得出1s/小時(shí)的誤差讓人驚訝阿
因?yàn)槲矣X(jué)得這個(gè)秒表運(yùn)動(dòng)場(chǎng)上大概用一下還可以,來(lái)測(cè)量這樣的
時(shí)間真是覺(jué)得不可靠阿。
而且細(xì)想來(lái),一秒鐘對(duì)于秒表來(lái)說(shuō)是個(gè)小case,但是對(duì)于單片機(jī)來(lái)說(shuō)應(yīng)該是一個(gè)
不小的數(shù)字呢,應(yīng)該不是晶振的問(wèn)題,不然就太離譜了

6樓: >>參與討論
makesoft
呵呵,定時(shí)器效率高啊
 
7樓: >>參與討論
tyw
定時(shí)中斷計(jì)算對(duì)頭了嗎?
中斷一次多長(zhǎng)時(shí)間?有時(shí)尾數(shù)多算1,或少算1是常有的事,要是中斷一次是ms級(jí)的話,這個(gè)累計(jì)誤差就較大了.
是用的51系統(tǒng)嗎?不妨把定時(shí)設(shè)置貼上來(lái)給大家看一下.排除了這一條就好找其他原因了.
晶振若是用了大興貨也是有可能的.

* - 本貼最后修改時(shí)間:2006-2-4 20:33:50 修改者:tyw

8樓: >>參與討論
faiwong
程序中有沒(méi)有其他中斷?
 
9樓: >>參與討論
雁舞白沙
應(yīng)該是程序的問(wèn)題!
10PPM的晶振 一天的秒誤差最多是0.5秒!

還是看看程序吧!

10樓: >>參與討論
sambie
謝謝各位。請(qǐng)看下面的中斷程序:
T0ISR:    PUSH    PSW
    PUSH    ACC    
    CLR    TR0    ;T0 INT OFF
    MOV    TH0,#3CH    ;for 50ms initial VALUE
    MOV    TL0,#0B3H    ;ADJUST 3 US
    SETB    TR0    ;START T0    
    CLR    C
    MOV    R7,#3    ;NUMBER OF BYTES
    MOV    R0,#22H    ;HEAD ADDRS OF 1ST NUMBER(LSB)    
ADD3:    MOV    A,@R0    ;LOW BYTE
    ADD    A,#1
    MOV    @R0,A
    DEC    R0
    DJNZ    R7,ADD3    
         ......
T0END:    POP    ACC
    POP    PSW
    RETI

1.我是用電腦上的時(shí)鐘測(cè)的,10小時(shí)約提前了10秒。
2.我在中斷程序里計(jì)數(shù)中斷次數(shù)并存入20H21H22H,中斷初值為3CB0H,即50ms,加上3個(gè)周期,為3CB3H。主程序中判斷中斷次數(shù)達(dá)到720000(720000x50ms=10hour)后LED亮。中斷程序比較長(zhǎng),但不應(yīng)該使LED提前點(diǎn)亮。程序中有一個(gè)外部中斷,但測(cè)試時(shí)沒(méi)有觸發(fā)。
謝謝指點(diǎn)。

11樓: >>參與討論
xwj
對(duì)于51 ,單個(gè)指運(yùn)行令時(shí)間不等長(zhǎng)的,有單周期、雙周期、4周期的
而中斷時(shí)必須執(zhí)行完當(dāng)前指令才能進(jìn)入中斷,因此觸發(fā)中斷,再進(jìn)入中斷這個(gè)時(shí)間是不確定的

要想長(zhǎng)時(shí)間計(jì)時(shí)準(zhǔn)確,避免累計(jì)誤差,必須在中斷時(shí)加上TL0的數(shù)值,才是正確的值
用定時(shí)器2的自動(dòng)重載方式也能避免這個(gè)誤差


還有,晶振實(shí)際上相當(dāng)于一個(gè)很穩(wěn)定的LC網(wǎng)絡(luò),實(shí)際振蕩頻率還受引腳外接的元器件影響,要想計(jì)時(shí)準(zhǔn)確必須調(diào)整外部匹配電容,用頻率計(jì)校準(zhǔn)頻率才行
樓主的問(wèn)題估計(jì)主要是這個(gè)原因

要想長(zhǎng)時(shí)間計(jì)時(shí)準(zhǔn)確很困難的,環(huán)境恒定時(shí)必要的,當(dāng)然,最好的方法還是由時(shí)間基準(zhǔn)進(jìn)行自動(dòng)校準(zhǔn),這才是根本知道

12樓: >>參與討論
sambie
謝樓上。我的兩個(gè)外部電容為22p,如你所說(shuō),是偏大還是偏小
 
13樓: >>參與討論
dengm
不用停定時(shí)器
     ORG 000BH
       MOV TH0,#3CH    ;for 50ms initial VALUE
       ORL TL0,#0B0H   ;*****
       AJMP TOISR


T0ISR:
    PUSH    PSW
    PUSH    ACC    
     ;CLR    TR0    ;T0 INT OFF
     ;MOV    TH0,#3CH    ;for 50ms initial VALUE
     ;MOV    TL0,#0B3H    ;ADJUST 3 US
     ;SETB    TR0    ;START T0

         

14樓: >>參與討論
sambie
dengm 高明。這可不用調(diào)整初值解決定時(shí)“向后推遲”
的問(wèn)題。我的問(wèn)題是“定時(shí)提前”太多(包括累計(jì)誤差)。如果程序沒(méi)問(wèn)題,我懷疑是電路的問(wèn)題:
1. 如xwj大俠所說(shuō),匹配電容取值不當(dāng)。我現(xiàn)在用兩個(gè)22p,那位大俠可以推薦一下更合理的值?(12MHZ晶振)
2. 如電腦圈圈等高手所說(shuō),晶振有誤差。比如實(shí)際值可能為12.05MHZ,足以使每次中斷提前n個(gè)us。可我換了幾個(gè)不同的晶振,都是一樣的問(wèn)題,請(qǐng)高手們?cè)u(píng)點(diǎn)一下這個(gè)可能性,并推薦一下哪種品牌的晶振較好。
3. 我瞎猜另一種可能:由于目前溫度較低,使晶振頻率變高,到了夏天則相反...

謝謝各位高手指點(diǎn)迷津。

15樓: >>參與討論
martial
dengm:你這段程序解決什么問(wèn)題??沒(méi)明白!
不用停定時(shí)器

     ORG 000BH
       MOV TH0,#3CH    ;for 50ms initial VALUE
       ORL TL0,#0B0H   ;*****
       AJMP TOISR


T0ISR:
    PUSH    PSW
    PUSH    ACC    
     ;CLR    TR0    ;T0 INT OFF
     ;MOV    TH0,#3CH    ;for 50ms initial VALUE
     ;MOV    TL0,#0B3H    ;ADJUST 3 US
     ;SETB    TR0    ;START T0

clr  tr0  就是停止計(jì)數(shù)呀??

參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)問(wèn)如何實(shí)現(xiàn)定時(shí)開(kāi)機(jī)?
問(wèn)下大家:AT24C系列的E2ROM,讀寫(xiě)后要延時(shí)多長(zhǎng)時(shí)間?
2407驅(qū)動(dòng)X5043,幫忙幫忙
請(qǐng)大家?guī)臀铱纯催b控接受處理程序哪里出問(wèn)題了?謝謝!
KEIL中的以下警告對(duì)程序運(yùn)行有什么影響?
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)