CCS :: View topic - INT0 interrupt 18F242
FAQ
Forum Help Profile
Official CCS Support
http://ccsinfo.com/forum/viewtopic.php?t=25558&highlight=inte...
Search
Log in to check your private messages
Register Log in
INT0 interrupt 18F242 CCS Forum Index -> General CCS C Discussion View previous topic :: View next topic Author Blob
Message INT0 interrupt 18F242 Posted: Mon Jan 02, 2006 6:56 am
Joined: 02 Jan 2006 Posts: 3 Location: Geistingen, Limburg, Belgium
Hello, At the moment i'm trying to generate an external interrupt on the PIC 18F24. i want to generate the interrupt on pin RB0. but it seems the interrupt is not catched... the code i use is as below: #include <18F242.H> #fuses HS,NOWDT, NOPROTECT, PUT #use DELAY (clock=20000000) #use fast_io(A) #use fast_io(B) //int i; //int x; //int c; #int_ext void EXT_ISR() { output_high(PIN_A0); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); output_high(PIN_A0); } /* main() */ void main() {
1 от 3
01.3.2007 г. 11:24
CCS :: View topic - INT0 interrupt 18F242
http://ccsinfo.com/forum/viewtopic.php?t=25558&highlight=inte...
/* Set pin A1 to be the blue led */ SET_TRIS_A(0x00); /* Allow pin B0 to be an external interrupt pin */ SET_TRIS_B(0b00010000); ext_int_edge(H_TO_L); enable_interrupts(global); enable_interrupts(int_rb); while(1) { output_high(PIN_A3); } }
Greets, Blob _________________ IMEC rulez ckielstra
Joined: 18 Mar 2004 Posts: 1334 Location: The Netherlands
Posted: Mon Jan 02, 2006 8:39 am
Code: /* Allow pin B0 to be an external interrupt pin */ SET_TRIS_B(0b00010000);
You are configuring B4 as an input but your comment says B0. Code: #int_ext void EXT_ISR() { output_high(PIN_A0); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); output_high(PIN_A0); }
Change one of the output_high() calls to output_low(). And why do you call 6 x delay_ms(200) when one call to delay_ms(1200) would do the same? Humberto
Joined: 08 Sep 2003 Posts: 813 Location: Buenos Aires la Reina del Plata
Posted: Mon Jan 02, 2006 11:26 am
Quote: At the moment i'm trying to generate an external interrupt on the PIC 18F242. i want to generate the interrupt on pin RB0. but it seems the interrupt is not catched...
enable_interrupts(int_rb); Should be enable_interrupts(INT_EXT); I assume you have a pull-up resistor wired from +5V to PIN RB0 or: port_b_pullups(TRUE); declared in your code. It is not a good practice to use delays inside an interrupt handler !!! To 'see' the RB0 interrupt action, the following code should be enough. (If your compiler version has the output_toggle() function.)
2 от 3
01.3.2007 г. 11:24
CCS :: View topic - INT0 interrupt 18F242
http://ccsinfo.com/forum/viewtopic.php?t=25558&highlight=inte...
Code: #int_ext void EXT_ISR() { output_toggle(PIN_A0); }
or if it doesn't: Code: int8 ext_trigger; #int_ext void EXT_ISR() { output_high(PIN_A0); ext_trigger = TRUE; } void main() { while(1) { ....... your stuff ....... if(ext_trigger) { delay_ms(200); output_low(PIN_A0); delay_ms(200); ext_trigger = FALSE; } } }
Best wishes, Humberto Display posts from previous: All Posts
Oldest First
CCS Forum Index -> General CCS C Discussion
Go All times are GMT - 6 Hours
Page 1 of 1 Jump to: General CCS C Discussion You can post new topics You can reply to topics You cannot edit your posts You cannot delete your posts You cannot vote in polls
Go in in in in in
this this this this this
forum forum forum forum forum
Powered by phpBB © 2001, 2005 phpBB Group
3 от 3
01.3.2007 г. 11:24