Browsing this Thread:
2 Anonymous Users
|
Re: 關於dsPIC30F2020比較器模組觸發中斷的寫法
|
|
新會員
Joined
: 2007/12/5 23:07 最後登入時間
: 2009/8/27 10:20
Group:
註冊會員
Level : 2 HP : 0 / 28 MP : 3 / 1387 EXP : 12
|
上面code的部份中,Init_CMP中,IEC1bits.AC1IE = 1才對, 在編輯的時候打錯,抱歉!
而實際程式也是寫上1,編輯的時候不知道怎麼改成0了。
發表於: 2009/8/5 16:35
|
|
|
關於dsPIC30F2020比較器模組觸發中斷的寫法
|
|
新會員
Joined
: 2007/12/5 23:07 最後登入時間
: 2009/8/27 10:20
Group:
註冊會員
Level : 2 HP : 0 / 28 MP : 3 / 1387 EXP : 12
|
板主與各路高手好:
下面測試程式中,希望CMP1A輸入高於1.25V即進入中斷, 然後跳出sleep模式 想請各位看看以下的程式是否哪裡出錯
int main( void ) { ADPCFG = 0xfff0; TRISBbits.TRISB7 = 0; LATBbits.LATB7 = 0; // 測試用 Init_CMP1(); while(1) { Sleep() } }
void Init_CMP1(void) { IPC7bits.AC1IP = 7; IEC1bits.AC1IE = 0; // 啟動比較器#1中斷致能
CMPCON1bits.INSEL = 0; //選取CMP1A CMPCON1bits.EXTREF = 0; //內部Ref CMPCON1bits.RANGE = 1; //AVDD/2 CMPCON1bits.CMPPOL= 0; //non inverted CMPDAC1 = 0x01FF; //Ref=AVDD/4=1.25V; CMPCON1bits.CMPON = 1; /* CMP1 enabled */ }
void _ISR _CMP1Interrupt(void) { LATBbits.LATB7 = 1; // 測試已進入中斷 IEC1bits.AC1IE = 0; // 則將比較器中斷致能關閉 IFS1bits.AC1IF = 0; }
結果LATB7都沒亮,代表都沒進入中斷。然而系統耗電流很低,的確有進入Sleep mode。希望知道問題出在哪邊,謝謝各位!!
發表於: 2009/8/4 17:39
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.