Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
新會員
|
請問可以貼給我看完整9-1可以run的程式嗎?
發表於: 2009/12/25 13:31
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
資深會員
|
參照:
T1CON=0xXX 的寫法是絕對正確可行的 會不行就表示你其中可能某些bit的設定不對,再查看確認哪裡不對即可 使用OpenTimerx()的方式,那些函式實際執行的過程其實也是T1CONbits.xxxx=???,其實沒有甚麼不同,只不過用OpenTimerx()感覺比較直覺易懂罷了。
發表於: 2009/11/8 13:58
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
資深會員
|
謝謝各位,這段給了我位新手很多經驗,和啟發,我之後又式了如果一定要用0x18的話我加了兩行
RCONbits.IPEN=1 IPR1bits.TMR1IP=0 這樣就可以了! 但是在這個程式我又試了一個東西, OpenTimer1( TIMER_INT_ON & T1_16BIT_RW & T1_SOURCE_EXT &T1_PS_1_1 & T1_OSC1EN_ON & T1_SYNC_EXT_ON ); 這段我想改成T1CON=0xXX 就是像組語的寫法一樣,結果答案不行,翻了很多例子,發現在c方面的寫法都會寫成上面的型態,而不能像組語那樣子,請問這個觀念是對的嗎?
發表於: 2009/11/8 13:07
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
資深會員
|
多謝 genitec 大 :
看來是我腦袋轉錯方向了 ! 重新整理一下 :
IF RCON.IPEN ---> 1
發表於: 2009/11/8 3:20
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
高級會員
|
去翻了一下datasheet , 好像是 RCON暫存器的IPEN BIT內定為 0 , RCON.IPEN=0的話 , 中斷向量位址在 0X08
Attach file: (0.00 KB)
發表於: 2009/11/7 14:31
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
資深會員
|
真的ㄟ , 改成 08 就可以 RUN 了 ....
在 Program Menory 裡 , RCON & IPEN 都找不到 但就是要改成 08 才能 RUN ? ? ? ? ? ? ? C 與 PIC18 都不熟 __自動__靠邊站 .............. PS: MPLAB 8.40 Language tool versions: mpasmwin.exe v5.31, mplink.exe v4.31, mcc18.exe v3.31 APP001-V1 MCU--- PIC18F4520-I/P Date Code : 061732R
發表於: 2009/11/7 5:05
Edited by Beee on 2009年11月07日 05:29:47
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
版主
|
要是 RCONbits.IPEN=0 的話,PIC18F 的中斷進入點為 0x08 ,0x18 那個進入點就沒有用了。
// 修改 Default 的中斷向量
發表於: 2009/11/6 13:13
Edited by Ryang on 2009年12月28日 14:15:43
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
資深會員
|
但我的問題是上面那個範例啊他的RCONbits.IPEN=0
題目原本是到0x18,所以我程式run了,燈沒跑! 但只改了0x08後就可以跑了!我在想他並沒有設高優先中斷才對不是嗎?
發表於: 2009/11/5 18:10
|
|||
|
Re: 計時器/計數器問題
|
||||
---|---|---|---|---|
版主
|
啟用高優先全中斷的設定步驟:
開啟中斷優先權的設定: RCONbits.IPEN=1; 設定Timer1的接收為高優先權: IPR1bits.TMR1IP=1; Enable Timer1的接收中斷: PIE1bits.TMR1IE=1; 啟動高優先權中斷: INTCONbits.GIEH=1;
發表於: 2009/11/5 11:14
|
|||
|