Hi Art,
IF that is what is happening then here's an idea which may or may not work for you....
With that said I'm bit surprised you get garbage on the screen. I didn't think the display would notice if a command or data transaction took longer than specified in the datasheet as long as the signals aren't touched by the ISR. Are you sharing any pins that the ISR may flip?Code:RefreshLCD VAR BIT UpdatingLCD VAR BIT Main: If RefreshLCD THEN ' LCDOUT was interrupted GOSUB WriteLCD ' Redo the screen RefreshLCD = 0 ' Clear flag ENDIF 'And all the other stuff Goto Main WriteToLCD: UpdatingLCD = 1 LCDOUT..... UpdatingLCD = 0 RETURN ISR: IF UpdatingLCD = 1 THEN ' LCDOUT statement was interrupted.. RefreshLCD = 1 ' Signal main routine to refresh the screen ENDIF ' And all the other stuff @ INT_RETURN
/Henrik.




Bookmarks