I have a strange problem in my code. I cannot receive characters via the serial port.
I've read up on the TI and RI interrupts and I think I am handling these correctly.
The program goes to the serial I/O isr, but just sits at the gets(comin,4) line. When I examine comin in the watch window and input chars via the SIN = xx (where xx is an ascii code), I can see the comin array remains empty.
Below is the serial I/O interrupt routine (my application does not need Tx)
pre void uart_rx_isr (void) interrupt 4 using 3 { signed char index=0; EA=0;
if (RI == 1) { gets(comin,4); command = atoi(comin); } RI=FALSE; /* finished isr - clear flag */ TI=FALSE; /* TI will not be used - always clear it*/ EA=1; }
/pre
Here is a fragment from main() - you can see that I set TI=1 initially to set the UART up
pre
TI=TRUE; /* always set TI=1 initially to allow serial printing */ RI=0;
loop: //RI=0; //IDLE
while ((1));
goto loop; } /pre
Appreciate some pointers here.
Jason
since the 'brain' I know the most about is not the human one but the '51 I can only guess.
However my guess is that looking at the preview immediately after the writing you do not actually 'read' but more remember what you wrote and thus do not see misspellings etc.
Erik
This forum is in serious need of some strong moderation. Besides all the Pointless cross sniping, this thread has been totally hijacked. That's all I'm going to say.
this thread has been totally hijacked.
have you never, while doing a come to think of b?
Yes, there has been a diversion triggered by 4 attempts to write the same, but should you repost "I have taken care of what has been suggested, here is what I have and the problem now is ... " would bring the therad back to subject, which your little gripe above never will.