| ??? 08/07/10 05:01 Read: times |
#177838 - Writing to SBUF in Serial Routine |
I am using Philips P89C52X2 controller in my project. I am also using serial communication Mode 3(Multiprocessor mode) for communicating with individual slave controller units.
Q: Can we SEND DATA to SBUF inside RI code? An example is as shown: /*SERIAL INTERRUPT SERVICE ROUTINE*/
#include<reg52.h>
unsigned char buf;
void onSerialPortISR(void) interrupt 4 using 3
{
if(TI)
{
TI = 0; /* clr ti since we are going to transmit again */
}
if(RI)
{
RI = 0; /* clear ri to wait for next character */
buf = SBUF; /* store the character from sbuf into temp buffer */
if(buf == 0xAA)/* IF THE RECEIVED VALUE IS 0xAA */
{
while(!TI){;} /* waiting for any previous transmission to finish */
TI = 0; /* clr ti since we are going to transmit again */
SBUF = 0x55; /* sending the data acknowledged byte back */
while(!TI){;} /* waiting for data to be transmitted */
}
}
}
|
| Topic | Author | Date |
| Writing to SBUF in Serial Routine | 01/01/70 00:00 | |
| Sure... | 01/01/70 00:00 | |
| yes, but | 01/01/70 00:00 | |
| TX inside serialint | 01/01/70 00:00 | |
| Pardon?? | 01/01/70 00:00 | |
| Pardon accepted | 01/01/70 00:00 | |
| Still a Missing Part of Scheme | 01/01/70 00:00 | |
| Pardon | 01/01/70 00:00 | |
| Will that work in 'C' ? | 01/01/70 00:00 | |
| Assembler if you want | 01/01/70 00:00 | |
| Why send_char? | 01/01/70 00:00 | |
| Why send_char | 01/01/70 00:00 | |
| You missed the point | 01/01/70 00:00 | |
| Call a routine from an interrupt | 01/01/70 00:00 | |
| Still misunderstanding | 01/01/70 00:00 | |
misunderstandings | 01/01/70 00:00 | |
| what happened to the OP? | 01/01/70 00:00 |



