Browsing this Thread:
1 Anonymous Users
|
Re: 18f452與18f4550之中斷用法
|
|
資深會員
Joined
: 2004/6/3 8:44 最後登入時間
: 2009/12/7 13:37
From 3年3班
Group:
註冊會員
Level : 26 HP : 0 / 637 MP : 292 / 37842 EXP : 49
|
加一行 #pragma config PBADEN=OFF
試看看
發表於: 2007/11/13 17:32
|
|
|
18f452與18f4550之中斷用法
|
|
新會員
Joined
: 2007/10/6 14:50 最後登入時間
: 2009/5/21 9:49
Group:
註冊會員
Level : 2 HP : 0 / 31 MP : 4 / 1559 EXP : 25
|
請問我用452的int0~int2都能夠動作,但是換上4550之後,並將include改成4550且lkr也是用4550,程式寫法完全一樣但是4550的int0~int2卻完全不動作,請各位先進能幫小弟我解決問題嗎?謝謝。以下是我的程式: void int_isr(void) { if(INTCONbits.INT0IF==1) { INTCONbits.INT0IF=0; PORTDbits.RD2=0; set=0; mode=(mode+1)%3; switch(mode) { case 0: { WriteCmdLCD(CLR_DISP); LCD_Set_Cursor(0,0); delay(); putrsLCD("High correction"); break; } case 1: { WriteCmdLCD(CLR_DISP); LCD_Set_Cursor(0,0); delay(); putrsLCD("Low correction"); break; } case 2: { break; } default: break; } } else if(INTCON3bits.INT1IF==1) { set=1; INTCON3bits.INT1IF=0; } }
#pragma code low_vector=0x18 void low_interrupt(void) { _asm GOTO int_isr _endasm } #pragma code #pragma interruptlow int_isr
void main(void) { float H,L,count; init_int(); Initial_AD(); OpenLCD(); INTCONbits.PEIE=1; INTCONbits.GIE=1; do { if(set==1) { switch (mode) { case 0: { H=C_Hvalue(Adc_Read(1),Adc_Read(2),L_level,H_level); set=0; break; } case 1: { L=C_Lvalue(Adc_Read(1),Adc_Read(2),L_level,H_level); set=0; break; } case 2: { ADCresult=Adc_Read(0); corrected_value=Twopoint(L,H,ADCresult,first_level,finall_level); set=0; break; } default: break; }
發表於: 2007/11/13 17:20
|
|
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.