Hi Peg,
Well, I am bit puzzled at this point as I added some code in the SCI ISR to check for the value of the received character. Also, the code in main() has been shortened to a simple for(;
loop and the COP is disabled.
At 115,200 BAUD I can detect the character 0x55, but not 0x54 and the transmitter is sending one character at a time. Normally, two pulses are seen on the scope, but when I transmit 0x54, the output pin does not generate two pulses even though the ISR has been executed. BTW, the scope shows the period of one bit at 115,200 BAUD to be 8.7 uS.
ISR Code:
if(SCIS1) // Acknowledge Receiver Full Flag
{
PTBD_PTBD6 = ~PTBD_PTBD6; //toggle pin
tmp_data = SCID; // Read the Data Buffer
PTBD_PTBD6 = ~PTBD_PTBD6; //toggle pin
if(tmp_data == 0x55)
{
PTBD_PTBD6 = ~PTBD_PTBD6; //toggle pin
SCI_COUNTER = 0; // short delay between pin transistions
PTBD_PTBD6 = ~PTBD_PTBD6; //toggle pin
}
}
Now if I change the code to check for 0x54, and send a 0x54 from the transmitter, the second pulse does not occur. I wonder why changing 1 bit in the character causes this effect?
Still investigating ...
Thanks,
David