PIC #1:
Code:TXSTA.5 = 1 ' TXEN: Transmit Enable bit hserout [ "[1]" ] while TXSTA.1 = 0 ' Check TRMT: Transmit Shift Register Status bit wend hserin [ wait("["), STR RecvData\11\"]" ] hserout [ "[2]" ] while TXSTA.1 = 0 ' Check TRMT: Transmit Shift Register Status bit wend pauseus 300 TXSTA.5 = 0 ' <----- Causes Framing error after last byte ! Mainloop: BlinkLED = 1 BlinkLED = 0 goto mainloop end
PIC #2:
Code:ReceiveInterrupt: hserin [ wait("["), STR RecvData\11\"]" ] UsartFlag = 1 @ INT_RETURN Start: Pause 200 ' Let PIC and LCD stabilize Mainloop: LEDblink = 1 if UsartFlag = 1 then TXSTA.5 = 1 hserout [ "[0]" ] while TXSTA.1 = 0 ' Check TRMT bit wend UsartFlag = 0 TXSTA.5 = 0 endif LEDblink = 0 GOTO Mainloop end
1. PICs can talk back and forth with no errors.
2. PIC #2 can disable transmitter every single time.
3. Framing error as soon as PIC #1 disables transmitter, causing PIC #2 to lock up (no more blink LED on bottom channel).
![]()




Bookmarks