Hi, I have the following code,
The program above will run for about 20 seconds and then it will stop working. Now, if I replaced the code in red "GOTO MAINLOOP" above by RETURN, then the code works just fine. Now, I understand that every GOSUB waits for a RETURN, but since I had the option "STACK OVERFLAW" disabled I thought that I could get away with it. Can somebody explains to me what is going on with this issue?Code:MainLoop: 'DO SOME STUFF HERE..... FOR J = 0 TO 7 GOSUB SearchForClockSignal NEXT J goto MainLoop SearchForClockSignal: USBSERVICE SERIN2 PORTE.3, 32, 3, CLOCKSEARCHFAILED, [wait(252), STR RFID_IN\6] USBSERVICE IF RFID_IN[0] = 252 THEN 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 GOTO MAINLOOP 'CLOCK SERIAL COMMUNICATION WAS RECEIVED CLOCKSEARCHFAILED: RETURN
Thanks,
Robert



. Yes, your code looks better than mine. The program is probably overflowing the stack and halting like Dave said. Will the program restart from the beginning if the stack overflow is enabled?


Bookmarks