Thanks alot dear Acetronics.
I wrote this simple program for testing portB change interrupt.
'************************************************* ****************
'* LCD Deifnes *
'************************************************* ****************
DEFINE LCD_DREG PORTD ' I/O port where LCD is connected
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2 ' Register select pin
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3 ' Enable pin
DEFINE LCD_BITS 4 ' 4-bit data bus
DEFINE LCD_LINES 2 ' LCD has 2 character lines
'************************************************* ****************
'* Interrupt Initialzing *
'************************************************* ****************
INTCON = %10001000 ' GIE and RBIE are set
OPTION_REG = %10000000
'************************************************* ****************
'* Initialzation *
'************************************************* ****************
TRISB = %00010000
PORTB = 0
ON INTERRUPT GOTO DIRECTION
'************************************************* ****************
'* Main Program *
'************************************************* ****************
MAIN:
lcdout $fe,1
lcdout "Main Routine"
pause 500
GOTO MAIN
END
'************************************************* ****************
'* Interrupt Service Routine *
'************************************************* ****************
DISABLE
DIRECTION:
lcdout $fe,1
lcdout "Interrupt !!!"
PAUSE 100
INTCON.0 = 0
RESUME
ENABLE
I compiled it and downloaded HEX file to PIC. I use PROTEUS 6 pro for simulating my program.(My Circuit Attached) When I pushed start debugging button on
proteus an unusual thing happened. I think that program should work in main loop so "Main Routine" should be written on LCD! But as soon as program starts
executing, the message "Interrupt !!!" is shown on LCD!! even if the push button isn't pressed. Why it does not work correct?!!
You wrote for me: "... in a word, you have to READ PortB in your interrupt stubb to get it that interrupt working properly ( see examples given ...)" What do you maen? Could you tell me about given examples?
** Although I use PIC16F877 in this simulator, I want to use PIC16F84 in my project. **
Bookmarks