' {$STAMP BS2px} ' {$PBASIC 2.5} ' --- EEPROM I/O Definitions SDA PIN 0 ' I2C serial data line SCL PIN 1 ' I2C serial clock line ' --- GPS Contants CST CON 6 ' UTC Central time correction [Change to 6 when on CST] DegSym CON 176 ' degrees symbol for report [Remove when combined with HAPB.BSP] ' --- GPS Variables UTC_HR VAR Byte ' Universal hour field UTC_MN VAR Byte ' Universal minutes field UTC_SC VAR Byte ' Universal seconds field Degrees VAR Byte ' Navigation Degrees Minutes VAR Byte ' Navigation Minutes DMinutes VAR Word ' Navigation Decimal Minutes Altitude VAR Word ' Sea level Height Work VAR Word ' Scrap data and numeric conversions fldWidth VAR Nib ' Width of field char VAR Byte ' General purpose byte size variable ' --- Variables Temperature VAR Word ' --- EEPROM Variables wrdAddr VAR Word ' word address X VAR Word ' General purpose variable ' --- Main wrdAddr = 4094 I2CIN SDA, $A1, wrdAddr.BYTE1\wrdAddr.BYTE0, [x.BYTE0, x.BYTE1] GOSUB Display_Captured_Data END ' --- Procedures Display_Captured_Data: work = x wrdAddr = $0 ' DEBUG CLS DEBUG ? work DO GOSUB Read_Word_Data Altitude = x GOSUB Read_Byte_Data UTC_HR = x GOSUB Read_Byte_Data UTC_MN = x GOSUB Read_Byte_Data UTC_SC = x GOSUB Read_Byte_Data Degrees = x GOSUB Read_Byte_Data Minutes = x GOSUB Read_Word_Data DMinutes = x DEBUG DEC5 Altitude */ $0348, ",", ' Show Altitude DEC2 UTC_HR + CST, ":", DEC2 UTC_MN, ":", DEC2 UTC_SC, ",", ' Show Time corrected for Garland, TX ' Show Latitude coordinates in degrees and decimal minutes DEC2 Degrees, " ", DEC2 Minutes,".", DEC4 DMinutes, "N," ' Show Longitude coordinates in degrees and decimal minutes GOSUB Read_Byte_Data Degrees = x GOSUB Read_Byte_Data Minutes = x GOSUB Read_Word_Data DMinutes = x DEBUG DEC2 Degrees, " ", DEC2 Minutes, ".", DEC4 DMinutes, "W," GOSUB Read_Word_Data Temperature = x / 2 DEBUG DEC3 Temperature, DegSym, "C," ' GOSUB Read_Word_Data ' Temperature = x ' DEBUG DEC3 Temperature, DegSym, "C," DEBUG ? wrdAddr LOOP UNTIL wrdAddr = work OR wrdAddr = 4080 DO LOOP UNTIL (IN2=0) ' Loop here until button is pressed DEBUG CLS ' Clear the screen RETURN Read_Word_Data: IF wrdAddr < 4092 THEN I2CIN SDA, $A1, wrdAddr.BYTE1\wrdAddr.BYTE0, [x.BYTE0, x.BYTE1] PAUSE 5 wrdAddr = wrdAddr + 2 ENDIF RETURN Read_Byte_Data: IF wrdAddr < 4092 THEN I2CIN SDA, $A1, wrdAddr.BYTE1\wrdAddr.BYTE0, [x] PAUSE 5 wrdAddr = wrdAddr + 1 ENDIF RETURN