' ========================================================================= ' ' File...... GPS_Time.BS2 ' Purpose... Simple GPS Demo using the BS2 ' Author.... Jon Williams ' E-mail.... jwilliams@parallax.com ' Started... ' Updated... 02 FEB 2004 ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- GpsPin PIN 0 ' serial in from GPS ' -----[ Constants ]------------------------------------------------------- #SELECT $STAMP #CASE BS2, BS2E, BS2PE T1200 CON 813 T2400 CON 396 T4800 CON 188 T9600 CON 84 T19K2 CON 32 T38K4 CON 6 #CASE BS2SX, BS2P T1200 CON 2063 T2400 CON 1021 T4800 CON 500 T9600 CON 240 T19K2 CON 110 T38K4 CON 45 #ENDSELECT Inverted CON $4000 Baud CON T4800 | Inverted UtcOfs CON 24 - 6 ' UTC offset (CST) ' -----[ Variables ]------------------------------------------------------- tmBuf VAR Byte(6) ' time buffer hr VAR Byte ' time fields mn VAR Byte sc VAR Byte ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- Setup: ' -----[ Program Code ]---------------------------------------------------- Main: ' get time from GPS stream SERIN GpsPin, Baud, 3000, No_Signal, [WAIT("GPRMC,"), STR tmBuf\6] ' extract values from buffer hr = (tmBuf(0) - "0" * 10) + (tmBuf(1) - "0") mn = (tmBuf(2) - "0" * 10) + (tmBuf(3) - "0") sc = (tmBuf(4) - "0" * 10) + (tmBuf(5) - "0") ' correct for location hr = hr + UtcOfs // 24 ' display raw and corrected data DEBUG HOME, STR tmBuf\6, CR, DEC2 hr, ":", DEC2 mn, ":", DEC2 sc NAP 6 GOTO Main END ' -----[ Subroutines ]----------------------------------------------------- No_Signal: DEBUG CLS, "No GPS Signal..." PAUSE 2000 DEBUG CLS GOTO Main