'**********
'Define variables
'**********
MENU var BYTE 'Menu variable
TIME var BYTE(11) 'Time variable
WARN var BYTE 'Warning variable
LAT var BYTE(10) 'Latitude variable
LONG var BYTE(11) 'Longitude variable
NS var BYTE 'North/South variable
EW var BYTE 'East/West variable
SPD var BYTE(6) 'Speed variable
DIR var BYTE(6) 'Direction variable
DATE var BYTE(6) 'Date variable
ALT var BYTE(5) 'Altitude in m variable
ALTU var BYTE 'Altitude units
HDOP var BYTE(5) 'Horizontal dilution of precision
SAT var BYTE(2) 'Satellites used
METRE var WORD 'Height in meters variable
AFEET var WORD 'Height in feet variable
TEMP var BYTE 'Temp. for altitude conversion
MULT var WORD 'Multiplier for altitude conversion
ALTVAR var BYTE 'Set number for times round loop
ALTF var BYTE(5) 'Altitude in feet storage
'**********
'setup interrupts
'**********
OPTION_REG = $7f 'Enable PORTB pull-ups and rising edge trigger
INTCON = $90 'Enable INTE (port b, pin 0) interrupt
MENU = "0" 'Clear the menu variable
ON INTERRUPT GOTO INT 'Define interrupt handler
'***********
'Startup Screen
'***********
PAUSE 100 'Allow LCD to power up for 750ms
LCDOUT $FE, 1 'Clear screen and display information
LCDOUT "GPS Display"
PAUSE 500 'Startup screen pause time
'**********
'Main program
'**********
'First collect data from GPRMC and GPGGA strings
RXLOOP:
SERIN2 PORTB.1, 188, 3000, RXERROR, [WAIT ("GPRMC"), skip 1, STR TIME\11\",", STR WARN\1, skip 1, STR LAT\10\",", STR NS\1, skip 1, STR LONG\11\",", STR EW\1, skip 1, STR SPD\6\",", STR DIR\6\",", STR DATE\6]
SERIN2 PORTB.1, 188, 3000, RXERROR, [WAIT ("GPGGA"), skip 39, STR SAT\2, skip 1, STR HDOP\5\",", STR ALT\6\",", STR ALTU\1]
There you go, there is plenty more after that but that is the bits that are giving me the first set of troubles.
/*edit*/ it is laid out better than that, much the same as the example you gave




Bookmarks