Exact match. Not showing close matches.
'[PIC]: Advice sought, using MAX3100 uart'
Probably [EE]: but as I'm using a pic here we go,
Need some input regarding the use of the maxim 3100
uart. I coded s/w buffers and int handlers for it but
it only semi-works ( :) ). What happens is that occasionally
the int pin is 'stuck' at constant low. It seems like
the interupt never is triggered. Everything now indicates
that there seems to be some kind of problem with the pic
in use ( or rather the ICE2000 module for 18x ). It seems
like if the INT pin is triggered during servicing another
request for example INT0, internal uart or I2C when doing
retfie the INT1 flag ( which is the one in use ) never is set.
Doing debugging i can see the INT1 going low but the program
never vectors to int. very odd.
But then again the fault probably could very well be in my code.
Here is some pseudo code:
Using circular RX/TX s/w buffers.
When adding to the TX buffer, if this is first(only) byte
trigger the INT1 irq after byte is safely in buffer.
In int code first read the 16 bit word, check first bits
( i.e. tx empty or rx avail ), if first bit set
save low byte if 16 bit word. If second bit set
check if any more byte in tx buffer, if so send it
to uart. exit.
This code works well for some time ( both RX/TX ) then
suddenly the comms just stop and i get tx buffer full error
if I then halt the program i can se the int1 pin beeing low
but that the int code was never fired.
A few days back I posted an related thread ( unanswered )
about the s/w triggering interupts, in that I asked why
one could not do:
This *never* triggers an vector to isr handler, however
using only the BSF INT1IF works. This might be related
but I'm not sure yet.
Anyone have any pointers ? or experience with it ?
Tony Kübek, Flintab AB
http://www.piclist.com hint: The PICList is archived three different
ways. See http://www.piclist.com/#archives for details.
More... (looser matching)
- Last day of these posts
- In 2001
, 2002 only
- New search...