訪客
|
Re: 中斷時間不對---幫幫忙
|
|||
---|---|---|---|---|
不好意思我不太懂你的算法我只知道
4MHZ~一個指令周期執行的時間是1US 而若你預除器設128,而值是設7D則就是數131次 這樣子算出來的時間是1US X 128 X 131 =16768US.....這樣不會到一秒喔 你可設TMR0為6…而預除器設100 而外部再給可個40的值去乘 這樣子就會到1, 重點…你在中斷時要重設TMR0為6,不過若要更精準一點要扣掉你中斷載入重數的時間……。 我覺得你用TMR2會較好,因為TMR2有個PR2可設,到了就自動重數。 |
||||
|
中斷時間不對---幫幫忙
|
||||
---|---|---|---|---|
新會員
|
4MHZ震盪器 1秒要做250次 所以TMR0=7D,預除128
4MHZ/128/125=250,這樣對吧,下面我的的中斷程式幫忙看一下 INT0: movwf W_Tmp movf STATUS,w clrf STATUS movwf STATUS_Tmp movf PCLATH,w movwf PCLATH_Tmp clrf PCLATH bcf STATUS,RP0 btfsc INTCON,T0IF call T0 End_Int: movf PCLATH_Tmp,w movwf PCLATH movf STATUS_Tmp,w movwf STATUS movf W_Tmp retfie ;------------------------------------------- ;------------ TIMER0 INTERRUPT-------------- ;------------------------------------------- T0: ; bsf T0Flag,0 incf Tcount call CheckT bcf STATUS,RP0 bcf INTCON,2 return
發表於: 2004/8/20 10:54
|
|||
|