' sertxd("online",13,10) i2cslave %10100000, i2cfast, i2cword high 5 w1=0 if input0=0 then readback main: 'if b7 = 'V' then no signal, if 'A' then signal serin 2, N4800,("$GPRMC,"),b0,b0,b0,b4,b5,b6,b0,b7 if b7 = "V" then goto nosig 'altitude 'serin 2,N4800,("$GPGGA,"),b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b9,b0,b0,b0,b0,b0,b0,b0,b0,b1,b2,b3,b4,b5,b6,b7,b8 'serin 2, N4800, ("$GPGGA,"), b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b1,b2,b0,b4 'Sertxd(13,10,"Ele=",b1,b2,".",b4) 'show it on LCD 'pause 100 '48 characters to skip first serin 2,N4800,("$GPGGA,"),b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 'sertxd(13,10,"KPH=",b1,b2,".",b3) 'show it on LCD if b7="," then case1 if b8="," then case2 if b9="," then case3 if b10="," then case4 if b11="," then case5 if b12="," then case6 sendalt: if b5="," then lockbuterror low 5 pause 100 high 5 sertxd(13,10,"Alt=",b5,b6,b7,b8,b9,b10,b11,b12,13,10,"w1:",#w1) 'show it on LCD writei2c w1,(b5,b6,b7,b8,b9,b10,b11,b12) pause 200 'readi2c address,(b5,b6,b7,b8,b9,b10,b11,b12) 'sertxd(13,10,"Alt2=",b5,b6,b7,b8,b9,b10,b11,b12) 'show it on LCD w1=w1+8 goto main nosig: sertxd("No signal!",13,10) low 5 pause 50 high 5 pause 50 low 5 pause 50 high 5 goto main case1: b7=0 case2: b8=0 case3: b9=0 case4: b10=0 case5: b11=0 case6: b12=0 goto sendalt readback: readi2c w1,(b5,b6,b7,b8,b9,b10,b11,b12) if b5=0 then done sertxd(b5,b6,b7,b8,b9,b10,b11,b12) w1=w1+8 low 5 pause 200 high 5 pause 50 low 5 pause 50 high 5 goto readback done: low 5 end lockbuterror: low 5 goto main