Better question is why you would use GOSUB without RETURN? That just doesn't have any sense.
If stack is full then PBP can't call internal subroutines, and it crash...
You just disabled reset on overflow. That fuse doesn't expand stack to infinity and beyond.
Better solution to get same result
Code:
MainLoop:
GOSUB SearchForClockSignal
goto MainLoop
SearchForClockSignal:
FOR J = 0 TO 7
USBSERVICE
SERIN2 PORTE.3, 32, 3, CLOCKSEARCHFAILED, [wait(252), STR RFID_IN\6]
USBSERVICE
IF RFID_IN[0] = 252 THEN RETURN 'GOTO MAINLOOP
SquaresArray[0] = 255
SquaresArray[1] = 202
SquaresArray[2] = RFID_IN[0]
SquaresArray[3] = RFID_IN[1]
SquaresArray[4] = RFID_IN[2]
SquaresArray[5] = RFID_IN[3]
SquaresArray[6] = RFID_IN[4]
SquaresArray[7] = RFID_IN[5]
if PPB_DeviceState = 32 then 'ONLY WHEN THERE IS A USB CONNECTION PRESENT
GOSUB SendUSBData
endif
RETURN 'CLOCK SERIAL COMMUNICATION WAS RECEIVED
CLOCKSEARCHFAILED:
NEXT J
RETURN
Bookmarks