Truncated match.
PICList
Thread
'Interrupt conflit'
1997\11\25@120306
by
Paulo Figueiredo
I'm using a PIC16C74A-20/JW in my aplication. The function is
receive data using PIC16C74A hardware UART with an externel
DUART, the comunication is FULL DUPLEX.
I'm using PORTB interrupt on change to know when I must read
(byte received) from DUART or Write (TXBUFFER free) .
It works well but when the PORTB Rx interrupt(RB6) and Tx (RB4)
interrupt event at same time (i saw the signal on a digital
oscilloscope) the program counter is lost and it resets (watchdog
timer).
I use PUSH AND POP routines.The number of a CALLl function
used in main program (outside the interrupt routine) is maximum two
in deept, inside the interrupt routine its only PUSH and POP
routines.
Anyone can help me solving this problem please contact me.
Manuel Morais
1997\11\25@134617
by
Mike Keitz
On Tue, 25 Nov 1997 16:53:33 +1200,WET Paulo Figueiredo
<spam_OUTpxicoTakeThisOuT
IDITE-MINHO.PT> writes:
>I'm using a PIC16C74A-20/JW in my aplication. The function is
>receive data using PIC16C74A hardware UART with an externel
>DUART, the comunication is FULL DUPLEX.
>
>I'm using PORTB interrupt on change to know when I must read
>(byte received) from DUART or Write (TXBUFFER free) .
Using the RB interrupt on change while the PIC is running is fraught with
trouble. Microchip recommends using this interrupt only to wake up the
PIC from sleep. Use the RB0 interrupt instead, OR the external
interrupts together with a gate or diodes, also connect them to port pins
to allow software to poll which one caused the interrupt. If that's
already in use, maybe the DUART's interrupt pins could be connected to a
timer module or something to interrupt the PIC.
1997\11\25@152610
by
myke predko
|
Manual?? (I guess you're using somebody else's account)
You said you were having problems with interrupts:
>It works well but when the PORTB Rx interrupt(RB6) and Tx (RB4)
>interrupt event at same time (i saw the signal on a digital
>oscilloscope) the program counter is lost and it resets (watchdog
>timer).
How did you see both these interrupts at the "same time" on a 'scope? I
would have thought experiencing Receiver full and TX Holding Register Free
at the same time would be a pretty random event - especially down to the
cycle level (which is what you seem to be talking about).
>I use PUSH AND POP routines.The number of a CALLl function
>used in main program (outside the interrupt routine) is maximum two
>in deept, inside the interrupt routine its only PUSH and POP
>routines.
What are your "PUSH" and "POP" Routines? I presume you're putting the
context registers on a stack (pointed to be the FSR)?
Maybe you could post the relevant code.
myke
"I was well aware that the processes of puberty are often fatal to psychic
power."
- Sir Arthur Conan Doyle
More... (looser matching)
- Last day of these posts
- In 1997
, 1998 only
- Today
- New search...