|
|
View previous topic :: View next topic |
Author |
Message |
Dzuy Nguyen Guest
|
Multiple interrupts on RB0 help....code included! |
Posted: Fri Apr 04, 2003 4:59 pm |
|
|
Just wondering if anyone can help...I am trying to use the RB0 interrupt pin on a PIC16F84A. I have a 4.7 pullup resistor on pin RB0. Usually, the resistor is open (0V), however on end of the resistor is connected to 5V (through a relay). I want the MCU to go the ISR when it sees 5V. Once the ISR completes, the relay opens up and the resistor sees 0V again.
The following code will only go to the ISR once! I need it to be able to go to the ISR anytime it sees 5V! Can anyone show me how to use the RB0 interrupt pin for multiple interrupts?
Thanks ahead...
Dzuy
#include <16F84A.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_rb
void lightISR()
{
output_high(PIN_A0);
delay_ms(200);
delay_ms(200);
output_low(PIN_A0);
}
/* main() */
void main()
{
/* 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(L_TO_H);
enable_interrupts(global);
enable_interrupts(int_rb);
}
___________________________
This message was ported from CCS's old forum
Original Post ID: 13428 |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
Re: Multiple interrupts on RB0 help....code included! |
Posted: Fri Apr 04, 2003 5:19 pm |
|
|
:=Just wondering if anyone can help...I am trying to use the RB0 interrupt pin on a PIC16F84A. I have a 4.7 pullup resistor on pin RB0. Usually, the resistor is open (0V), however on end of the resistor is connected to 5V (through a relay). I want the MCU to go the ISR when it sees 5V. Once the ISR completes, the relay opens up and the resistor sees 0V again.
:=The following code will only go to the ISR once! I need it to be able to go to the ISR anytime it sees 5V! Can anyone show me how to use the RB0 interrupt pin for multiple interrupts?
------------------------------------------------------------
Your code is attempting to use INT_RB, which is the
"interrupt on change" interrupts. It also only works on
pins RB4-RB7. I think you really want to use INT_EXT.
Here is a demo program for INT_EXT.
<a href="http://www.pic-c.com/forum/general/posts/2138.html" TARGET="_blank">http://www.pic-c.com/forum/general/posts/2138.html</a>
Also, you don't want to leave the interrupt pin as a floating
input part of the time. I think that's what you're doing.
I'd suggest putting a 4.7K ohm resistor to +5v, as a pull-up,
and then have the relay put ground on the PIC RB0 pin, when
the relay is closed.
<PRE>
+5v
---- |
| >
| < 4.7K
| >
| |
RB0 |------------o o-----------
| relay |
---- contacts --- GND
-
</PRE>
When the relay contacts close, it will put GND on RB0,
but otherwise, it's pulled up to +5v.
___________________________
This message was ported from CCS's old forum
Original Post ID: 13429 |
|
|
Dzuy Nguyen Guest
|
Re: Multiple interrupts on RB0 help....code included! |
Posted: Fri Apr 04, 2003 6:19 pm |
|
|
Thank you very much! It works!
Dzuy
:=:=Just wondering if anyone can help...I am trying to use the RB0 interrupt pin on a PIC16F84A. I have a 4.7 pullup resistor on pin RB0. Usually, the resistor is open (0V), however on end of the resistor is connected to 5V (through a relay). I want the MCU to go the ISR when it sees 5V. Once the ISR completes, the relay opens up and the resistor sees 0V again.
:=:=The following code will only go to the ISR once! I need it to be able to go to the ISR anytime it sees 5V! Can anyone show me how to use the RB0 interrupt pin for multiple interrupts?
:=------------------------------------------------------------
:=
:=Your code is attempting to use INT_RB, which is the
:="interrupt on change" interrupts. It also only works on
:=pins RB4-RB7. I think you really want to use INT_EXT.
:=
:=Here is a demo program for INT_EXT.
:= <a href="http://www.pic-c.com/forum/general/posts/2138.html" TARGET="_blank"> <a href="http://www.pic-c.com/forum/general/posts/2138.html" TARGET="_blank">http://www.pic-c.com/forum/general/posts/2138.html</a></a>
:=
:=Also, you don't want to leave the interrupt pin as a floating
:=input part of the time. I think that's what you're doing.
:=I'd suggest putting a 4.7K ohm resistor to +5v, as a pull-up,
:=and then have the relay put ground on the PIC RB0 pin, when
:=the relay is closed.
:=
:=<PRE>
:= +5v
:=---- |
:= | >
:= | < 4.7K
:= | >
:= | |
:=RB0 |------------o o-----------
:= | relay |
:=---- contacts --- GND
:= -
:=</PRE>
:=
:=When the relay contacts close, it will put GND on RB0,
:=but otherwise, it's pulled up to +5v.
___________________________
This message was ported from CCS's old forum
Original Post ID: 13433 |
|
|
loh
Joined: 14 Jun 2004 Posts: 3 Location: Taiwan ROC, Taipei.
|
INT_EXT post |
Posted: Tue Jun 15, 2004 1:03 am |
|
|
INT_EXT post no longer exists, repost please? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Jun 15, 2004 1:24 am |
|
|
Quote: | INT_EXT post no longer exists, repost please ? |
When posts were moved from the old board into the database
for this board, the links were broken. To find an old post,
use the search function to search for the post number.
For example, here is the post that you wanted:
http://www.ccsinfo.com/forum/viewtopic.php?t=8504&highlight=2138 |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|