SHOW:
|
|
- or go back to the newest paste.
1 | CON | |
2 | _clkmode = xtal1 + pll16x | |
3 | _xinfreq = 5_000_000 | |
4 | ||
5 | XB_Rx = 0 ' XBee DOUT | |
6 | XB_Tx = 1 ' XBee DIN | |
7 | XB_Baud = 9600 | |
8 | CR = 13 ' Carriage Return value | |
9 | GPS_Pin = 7 | |
10 | OBJ | |
11 | XB : "FullDuplexSerial" | |
12 | GPS : "GPS_Float_Lite" | |
13 | FS : "FloatString" | |
14 | Pub Start | fv | |
15 | XB.start(XB_Rx, XB_Tx, 0, XB_Baud) ' Initialize comms for XBee | |
16 | GPS.Init | |
17 | ||
18 | repeat | |
19 | XB.Str(String(16, 1)) | |
20 | ||
21 | FS.SetPrecision(7) | |
22 | fv := GPS.Float_Latitude_Deg ' Get latitude | |
23 | If fv <> floatNaN | |
24 | XB.Str(FS.FloatToString(fv)) | |
25 | Else | |
26 | XB.Str(String("---")) | |
27 | ||
28 | XB.Str(String(",")) | |
29 | fv := GPS.Float_Longitude_Deg ' Get longitude | |
30 | If fv <> floatNaN | |
31 | XB.Str(FS.FloatToString(fv)) | |
32 | Else | |
33 | XB.Str(String("---")) | |
34 | ||
35 | XB.Str(String(",")) | |
36 | fv := GPS.Float_Speed_Over_Ground ' Get speed | |
37 | If fv <> floatNaN | |
38 | XB.Str(FS.FloatToString(fv)) | |
39 | Else | |
40 | XB.Str(String("---")) | |
41 | ||
42 | XB.Str(String(",")) | |
43 | fv := GPS.Float_Altitude_Above_MSL ' Get altitude | |
44 | If fv <> floatNaN | |
45 | XB.Str(FS.FloatToString(fv)) | |
46 | Else | |
47 | XB.Str(String("---")) | |
48 | ||
49 | XB.Str(String(",")) | |
50 | - | fv := GPS.Float_Mag_Var_Deg ' Get magnetic variance |
50 | + | |
51 | If fv <> floatNaN | |
52 | XB.Dec(GPS.Long_Month) | |
53 | Else | |
54 | XB.Str(String("---")) | |
55 | ||
56 | XB.Str(String(",")) | |
57 | fv := GPS.Long_Day ' Get day | |
58 | If fv <> floatNaN | |
59 | XB.Dec(GPS.Long_Day) | |
60 | Else | |
61 | XB.Str(String("---")) | |
62 | ||
63 | XB.Str(String(",")) | |
64 | fv := GPS.Long_Year ' Get year | |
65 | If fv <> floatNaN | |
66 | XB.Dec(GPS.Long_Year) | |
67 | Else | |
68 | XB.Str(String("---")) | |
69 | ||
70 | XB.Str(String(",")) | |
71 | fv := GPS.Long_Hour ' Get Hour | |
72 | If fv <> floatNaN | |
73 | XB.Dec(GPS.Long_Hour) | |
74 | Else | |
75 | XB.Str(String("---")) | |
76 | ||
77 | XB.Str(String(",")) | |
78 | fv := GPS.Long_Minute ' Get Minute | |
79 | If fv <> floatNaN | |
80 | XB.Dec(GPS.Long_Minute) | |
81 | Else | |
82 | XB.Str(String("---")) | |
83 | ||
84 | XB.Str(String(",")) | |
85 | fv := GPS.Long_Second ' Get Second | |
86 | If fv <> floatNaN | |
87 | XB.Dec(GPS.Long_Second) | |
88 | Else | |
89 | XB.Str(String("---")) | |
90 | XB.tx(13) | |
91 | WaitCnt(ClkFreq / 2 + ClkFreq / 4 + Cnt) | |
92 | ||
93 | DAT | |
94 | ||
95 | floatNaN LONG $7FFF_FFFF 'Means Not a Number |