OSDN Git Service

11/11/21 17H
authorNaoya Takamura <ntaka206@users.sourceforge.net>
Mon, 21 Nov 2011 08:35:44 +0000 (17:35 +0900)
committerNaoya Takamura <ntaka206@users.sourceforge.net>
Mon, 21 Nov 2011 08:35:44 +0000 (17:35 +0900)
ublox NAV-TIMEUTC decode
byte2var.c add
add no_auto_psv to ISR

19 files changed:
build/default/production/byte2var.o [new file with mode: 0644]
build/default/production/byte2var.o.d [new file with mode: 0644]
build/default/production/main.o
build/default/production/main.o.d
build/default/production/myuart.o
build/default/production/ublox.o
build/default/production/ublox.o.d
byte2var.c [new file with mode: 0644]
byte2var.h [new file with mode: 0644]
dist/default/production/ad2010.production.hex
dist/default/production/ad2010.production.out
main.c
myuart.c
myuart.h
nbproject/Makefile-default.mk
nbproject/Makefile-genesis.properties
nbproject/configurations.xml
ublox.c
ublox.h

diff --git a/build/default/production/byte2var.o b/build/default/production/byte2var.o
new file mode 100644 (file)
index 0000000..1141ebc
Binary files /dev/null and b/build/default/production/byte2var.o differ
diff --git a/build/default/production/byte2var.o.d b/build/default/production/byte2var.o.d
new file mode 100644 (file)
index 0000000..0bb2ddd
--- /dev/null
@@ -0,0 +1 @@
+build/default/production/byte2var.o: byte2var.c
index 84f0b56..f6b8df8 100644 (file)
Binary files a/build/default/production/main.o and b/build/default/production/main.o differ
index ee942d5..d89bbc0 100644 (file)
@@ -1,2 +1,2 @@
 build/default/production/main.o: main.c myuart.h myspi.h debug_print.h \
-  ublox.h myad.h delay.h ring.h
+  ublox.h myad.h delay.h ring.h byte2var.h
index 1d1fc9f..0df4aee 100644 (file)
Binary files a/build/default/production/myuart.o and b/build/default/production/myuart.o differ
index c99c55f..cc9b21e 100644 (file)
Binary files a/build/default/production/ublox.o and b/build/default/production/ublox.o differ
index 4808e7c..e6d7022 100644 (file)
@@ -1 +1 @@
-build/default/production/ublox.o: ublox.c ublox.h myuart.h
+build/default/production/ublox.o: ublox.c ublox.h myuart.h byte2var.h
diff --git a/byte2var.c b/byte2var.c
new file mode 100644 (file)
index 0000000..33dc9f0
--- /dev/null
@@ -0,0 +1,21 @@
+#include <string.h>
+
+/*
+ * 3byte binary -> signed long
+ * In: Litte Endian
+ * Out: Little Endian
+ */
+long byte3_to_long(unsigned char *in)
+{
+    long    out;
+    unsigned char    *ptr = (unsigned char*)&out;
+
+    memcpy(ptr, in, 3);
+
+    if (in[2] & 0x80) {
+        ptr[3] = 0xFF;
+    } else {
+        ptr[3] = 0x00;
+    }
+    return out;
+}
diff --git a/byte2var.h b/byte2var.h
new file mode 100644 (file)
index 0000000..83a1219
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * In: Litte Endian
+ * Out: Little Endian
+ */
+
+#ifndef __BYTE2VAR_H__
+
+#define __BYTE2VAR_H__
+
+
+#define byte4_to_long(in)   (*((long*)(in)))
+#define byte4_to_ulong(in)   (*((unsigned long*)(in)))
+#define byte2_to_int(in)   (*((int*)(in)))
+#define byte2_to_uint(in)   (*((unsigned int*)(in)))
+#define byte1_to_char(in)   (*((char*)(in)))
+#define byte1_to_uchar(in)   (*((unsigned char*)(in)))
+
+long byte3_to_long(unsigned char *in);
+
+#endif
+
+
index cb54574..fc0bf5b 100644 (file)
@@ -1,11 +1,11 @@
 :020000040000fa
 :080000000002040000000000f2
 :020000040000fa
-:100400008f0022000e7f22000e01880000000000f5
-:100410000c0007008053210001002000110007009c
+:100400000fff21000e7f22000e0188000000000077
+:100410000c000700a05c2100010020001100070073
 :10042000000020000000e000020032000000020096
-:1004300000000000900d0200000000000040da0003
-:100440000000fe004440a900800820000000e000f9
+:1004300000000000f60d0200000000000040da009d
+:100440000000fe004440a900000c20000000e00075
 :100450000300320000002000a00188004440a800f2
 :100460000000060091018800800078000000eb0089
 :1004700015003700e280400032a0b4009101ba00bc
 :100018009002000090020000900200009002000090
 :100028009002000090020000900200009002000080
 :100038009002000090020000900200009002000070
-:100048009002000090020000500f000016160000f9
+:100048009002000090020000be0f0000a8160000f9
 :100058009002000090020000900200009002000050
 :100068009002000090020000900200009002000040
-:10007800fa0e0000900200009002000090020000ba
+:10007800700f000090020000900200009002000043
 :100088009002000090020000900200009002000020
 :100098009002000090020000900200009002000010
-:1000a800900200004810000090020000900200003a
+:1000a80090020000ae1000009002000090020000d4
 :1000b80090020000900200009002000090020000f0
 :1000c80090020000900200009002000090020000e0
 :1000d80090020000900200009002000090020000d0
 :10021800900200009002000090020000900200008e
 :10022800900200009002000090020000900200007e
 :10023800900200009002000090020000900200006e
-:100248009002000090020000500f000016160000f7
+:100248009002000090020000be0f0000a8160000f7
 :10025800900200009002000090020000900200004e
 :10026800900200009002000090020000900200003e
-:10027800fa0e0000900200009002000090020000b8
+:10027800700f000090020000900200009002000041
 :10028800900200009002000090020000900200001e
 :10029800900200009002000090020000900200000e
-:1002a8009002000048100000900200009002000038
+:1002a80090020000ae1000009002000090020000d2
 :1002b80090020000900200009002000090020000ee
 :1002c80090020000900200009002000090020000de
 :1002d80090020000900200009002000090020000ce
 :1018f000434c000041530000533d000025300000e0
 :101900003258000020490000443d0000253000000e
 :1019100032580000204c0000454e00003d250000dc
-:10192000640d00000a000000535400004152000002
-:10193000540d00000a000000535400004152000002
-:10194000542000006465000062750000670d00000f
-:101950000a00000052500000494e000052320000c0
-:10196000303d000025300000345800000d0a000012
-:101970000053000050490000314300004f4e00006a
-:10198000313d000025300000345800000d0a0000f1
-:101990000053000050490000314300004f4e00004a
-:1019a000323d000025300000345800000d0a0000d0
-:1019b0000053000050490000315300005441000022
-:1019c000543d000025300000345800000d0a00008e
-:1019d0000000000025300000325800002000000008
-:1019e0000d0a000000410000434b00000d0a0000fa
-:1019f000004e0000414300004b0d00000a000000b3
+:10192000640d00000a00000025300000347500003e
+:101930002f25000030320000642f00002530000009
+:10194000326400002025000030320000643a0000bc
+:1019500025300000326400003a25000030320000db
+:10196000642e000025300000396c00006420000067
+:10197000253600006c7500006d7300002025000006
+:10198000366c0000756e00007320000025300000ea
+:10199000325800000d0a00000053000054410000be
+:1019a000525400000d0a0000005300005441000092
+:1019b000525400002064000065620000756700005a
+:1019c0000d0a000000520000504900004e52000075
+:1019d000323000003d25000030340000580d00007a
+:1019e0000a0000005350000049310000434f00003e
+:1019f0004e3100003d25000030340000580d00003d
+:101a00000a0000005350000049310000434f00001d
+:101a10004e3200003d25000030340000580d00001b
+:101a20000a000000535000004931000053540000e8
+:101a3000415400003d25000030340000580d0000e6
+:101a40000a0000002530000032580000200000008d
+:101a50000d0a000000410000434b00000d0a000089
+:101a6000004e0000414300004b0d00000a00000042
 :020000040000fa
-:101a0000004378006312b9008180fb006009200068
-:101a10000088b900840040000682fb0040382000a6
-:101a200000a2b90084804000608020000080400057
-:101a300034c0b300335878000442e900fdff3a0097
-:101a4000000006000000fb007801b900e0d1210091
-:101a5000020040000b000900311878008001b1003d
-:101a60008101b100000006000401fa00881f78001f
-:101a7000e8f72f0008844700a0ef2f000f00400078
-:101a8000e40140000081e8008000e800a0ef2f00a2
-:101a90000f004000ee020700efb89600811f7800ab
-:101aa0001ff895000080fb00801f7800eff0950084
-:101ab0000180fb00801f780080c72800801f78000d
-:101ac00008007800defa0700080078001605070015
-:101ad000e8875700e8ff37000400fa0064815700e8
-:101ae0008000780031597800315978001149780028
-:101af000204090000004e00003003d0000c0eb0027
-:101b0000f0ff9f00020037000040eb00f0ff9f0055
-:101b10006fb89700ffb897000080fa000000060039
-:101b20002000fa00881f7800103a8000f00bb20005
-:101b30007205200061042000237420008149780090
-:101b40008249780080497800a4c6bf0001ceb30066
-:101b5000014060006040b300a4e6b700c5c6bf0006
-:101b6000014060003040b300c5e6b700a6c6bf0024
-:101b7000014060005041b300a6e6b700d4c6bf00e4
-:101b8000014060005040b300d4e6b700d9c6bf00a2
-:101b900001406000d9e6b700acc6bf00014060005c
-:101ba000d040b300ace6b700adc6bf000140600056
-:101bb0007041b300ade6b700aec6bf0001406000a3
-:101bc0008041b300aee6b700d6c6bf00014060005a
-:101bd000a040b300d6e6b700a8c6bf000140600031
-:101be0002041b300a8e6b700d0c6bf0001406000a6
-:101bf0000034a000d0e6b700d1c6bf0001406000ad
-:101c00007040b300d1e6b7000001eb000216880077
-:101c1000000c230040168800401a2000801688001f
-:101c2000223a88002ca3ef0081c6bf00014060006b
-:101c3000c040b30081e6b700aec0bf0088cfb3009c
-:101c4000084060000024a000aee0b7008220a80099
-:101c50000001fd0000e8b7000001fd00fb020700e5
-:101c6000920120000140200000802800400407006d
-:101c7000920120000140200000802800430407005a
-:101c80007b0407008604070040c92800a60407005b
-:101c9000c0c9280060fa070040358000801f780026
-:101ca000a3ca2800831f7800a0fd2f000f0040006a
-:101cb00063fa0700a0fd2f000f0040009a04070000
-:101cc00010128000801f780093cb2800831f7800bb
-:101cd00060fd2f000f00400059fa070060fd2f0043
-:101ce0000f0040009004070020128000801f780041
-:101cf00093cc2800831f780020fd2f000f004000a8
-:101d00004ffa070020fd2f000f0040008604070057
-:101d100000128000801f780093cd2800831f780078
-:101d2000e0fc2f000f00400045fa0700e0fc2f0008
-:101d30000f0040007c0407009560a800a9c0bf0008
-:101d4000f1c8b3000140600001c4b300014070005d
-:101d5000a9e0b70042c0bf007f40600001407000b2
-:101d600042e0b700ff0307000058220001002000f6
-:101d70006001070080020700fa030700ba010700ac
-:101d80007d020700a30107007b020700cb42a800e9
-:101d9000100020000100200055040700cb62a900bc
-:101da000100020000100200051040700a7020700d6
-:101db000b302070000a82100610020004c040700c6
-:101dc00087020700d102070002030700f3030700a0
-:101dd0008540a900a9c0bf00084060000024a00001
-:101de000a9e0b7009680a800f08757001eff070003
-:101df000feff37003600f800809fbe00829fbe00c5
-:101e0000849fbe00869fbe003400f80000002000c2
-:101e1000a00188008680a900cbc2bf00704060008e
-:101e200018003a00aefdb70010c0b30001e8b700db
-:101e30000048e2000c003a00b03def00b23def0078
-:101e4000b43def00b63def00b83def00ba3def0006
-:101e5000bc3def00be3def00c03def00c23def00d6
-:101e6000c43def00c63def00aeddbf0063020700da
-:101e700040c2a900401280008540a9009540a800fa
-:101e80004822ef003400f9004f03be004f02be00ad
-:101e90004f01be004f00be003600f90000400600b2
-:101ea0003600f800809fbe00829fbe00849fbe0067
-:101eb000869fbe00889fbe008a9fbe003400f80047
-:101ec00000002000a00188000400fa0041128000f8
-:101ed0000144780040c2a90001c8bf00e24f500091
-:101ee0000a003200e34f50000e003200e14f500074
-:101ef0005b003a000100780004e8b70020c0b3009e
-:101f000001e8b7004822ef005700370001007800d1
-:101f100003e8b70030c0b30001e8b7004822ef0083
-:101f200051003700490207000800780002e8b700b6
-:101f300020802000e8fe0700e0bf9f00f1bf9f0067
-:101f40000a8020001a4578000a05fb00e8da210023
-:101f500018447800a403070080407800648157008b
-:101f60006355b9000884fb006009200000c4b90073
-:101f70000a0444008180fb00403820000088b9003a
-:101f800000044400608020000000440031c0b30021
-:101f9000325878008140e900fdff3a00e1da210083
-:101fa000914078000100fb004200dd0002db2100cf
-:101fb000020040006fba9700ffba97001008420075
-:101fc00050904a000140e800aefdb700e54f5000d8
-:101fd0001e0034000048ec008040780000e8b700a4
-:101fe00010c3b30080cf5000150034000204780005
-:101ff0000105fb00cfd5de0089dc21000a01be000f
-:102000001800be0048f90700009cbe00888f5400ed
-:10201000faff3a00740307000000fb007801b900e2
-:10202000e0d121000200400001db21000b0009008b
-:10203000311878008001b1006e0307000068ef00de
-:102040009540a9000168ef0007003700eb01070089
-:102050004822ef0010c0b30001e8b70002003700cb
-:102060009540a9000168ef000080fa003400f900f3
-:102070004f05be004f04be004f03be004f02be001e
-:102080004f01be004f00be003600f90000400600c0
-:10209000809fbe00829fbe00849fbe003400f80077
-:1020a00000002000a001880072f68000538020000c
-:1020b0009341780044c2b3001200370060c2bf00f1
-:1020c00005c2b3008540600005003a00401380005f
-:1020d000844f500002003a00320020008141780015
-:1020e00060c2bf000018a30006003a000200e00032
-:1020f000040032000380fb00401388008341e800a5
-:102100000201e90060c2bf000058a300ebff3200eb
-:1021100072f688000300780005e8b70060c2bf00cf
-:102120000068a3000100320060c2a9003400f90079
-:102130004f02be004f01be004f00be00004006002f
-:10214000881f78000004eb0000902000d1032000dd
-:102150006703070008407800a80107000804e800aa
-:10216000ef0f5400f8ff34000004eb00f6ff3700d7
-:1021700040138000d322a80000a8210061002000a5
-:102180005b030700d322a90000e82e0061032000b2
-:1021900057030700f7ff3700000278000040eb000c
-:1021a0000049780080497800e4804000090032004e
-:1021b0008482e8000002eb001243780035404300bf
-:1021c00000497800934940000402e800810f520062
-:1021d000f9ff3a00000006000200fa00889fbe00e6
-:1021e000820478000404780052cbb300024a7800dd
-:1021f00022c6b30012429800204298003142980053
-:10220000494298004848de0050429800660042006b
-:102210000901780083007800e2f80700e5815700a3
-:10222000668157000800be00dbff07000904440078
-:102230002ff89700604498003ff89700704498008a
-:10224000688044004f04be000080fa0000000600d1
-:102250001000fa00889fbe008a1f780000057800f1
-:10226000810478000100e0000e0032000004eb0061
-:102270006a407c000080fb00801f7800a0ce280010
-:10228000801f78007a805700edf807007a805700a9
-:10229000250307000804e800e4875700890f54006d
-:1022a000f3ff390000cf28001f0307004f05780017
-:1022b0004f04be000080fa00000006008001780094
-:1022c0000100e0000a0032000001eb0023c2bf0061
-:1022d0000018a300fdff3a00634079000080fb0076
-:1022e000201188000201e800828f5000f7ff3a00b9
-:1022f000000006002000fa00881f78000003be00de
-:102300000f047800f68747008801780012c0b300f8
-:10231000024c78008040eb00114498002144980062
-:102320003144980000cdb3004044980080c0b30011
-:10233000504498006144980071449800064c9800fd
-:102340004838dd004832de0004027000c83ade0082
-:10235000144c9800403ade0005002000244c980000
-:10236000483bde00364c9800424c9800514c980097
-:10237000624c9800714c98000154980011549800d8
-:1023800021549800315498000e0278004201200038
-:1023900060c0b30090ff0700800078000e00780056
-:1023a000c6ff0700880778004f0478000080fa0015
-:1023b000000006002000fa00881f78000f04780053
-:1023c000e687470088017800004ceb0030c2b3007c
-:1023d0001044980000c0eb002044980020c0b300d7
-:1023e000304498000e0278004200200071c1b30012
-:1023f00060c0b30078ff0700800078000e0078000e
-:10240000aeff0700880778004f0478000080fa00cc
-:10241000000006002000fa00881f78000f047800f2
-:10242000e48747008801780011c0b300014c7800b0
-:1024300010c2b30010449800214498000e027800a6
-:102440003200200060c0b30063ff07008000780006
-:102450000e00780099ff0700880778004f04780085
-:102460000080fa00000006004000fa00889fbe00cd
-:102470008a1f78000f0578002f02b00009022000a3
-:10248000090178008000eb000a0078004cf8070092
-:1024900010c0b300004d780020c3b3004045980041
-:1024a0000040eb00004d980001c8b300114d9800aa
-:1024b00002c7b300224d9800304d9800404d98005f
-:1024c000514d9800624d9800704d9800005598004d
-:1024d00010559800205598003155980040559800a7
-:1024e000505598006055980071559800f0ceb30093
-:1024f000405d98000e0278008a017800090178009a
-:1025000011c3b30060c0b30033ff07008000780040
-:102510000e00780069ff07008a0778004f057800f1
-:102520004f04be000080fa00000006004000fa00e0
-:10253000889fbe008a1f78000f0578002f02b00028
-:1025400009022000090178008000eb000a007800f1
-:102550001bf807008040eb00014d780020c3b3005a
-:102560004045980003c4b300034d980022c4b30053
-:10257000124d9800f0c0b300204d9800314d9800e6
-:10258000434d9800524d9800604d9800714d980051
-:102590000155980011559800215598003155980023
-:1025a000715598004155980050c3b300505598009c
-:1025b000c0c0b3006055980070cfb300405d980074
-:1025c0000e0278008a0178000901780011c3b30077
-:1025d00060c0b30000ff0700800078000e007800a4
-:1025e00036ff07008a0778004f0578004f04be00c9
-:1025f0000080fa00000006001000fa00889fbe006c
-:102600000004eb00793e2000bf0107000000e0005d
-:10261000fdff3200c5010700801f7800a0ce280012
-:10262000801f78007880570005f8070078805700f1
-:102630003d0207000804e800e4875700890f5400b2
-:10264000f1ff36004f04be000080fa0000000600d3
-:10265000889fbe008a9fbe008c9fbe000006be0001
-:1026600082047800830578000044eb000100370005
-:1026700018c0b300a40107000000e000fdff320015
-:10268000aa01070080007800e44f540026003200c1
-:102690000b003c00e14f54001800320003003c00e6
-:1026a0000804e00010003200f2ff3700e24f54004f
-:1026b00017003200e34f5400eeff3a0017003700d6
-:1026c000e64f5400200032001a003500e74f540056
-:1026d00003003200e84f5400e6ff3a0021003700c3
-:1026e00088c0b300e3ff37000044eb00500b20002c
-:1026f000808f5000dfff3a00ddff370028c0b300b5
-:1027000020062000808f5000daff3200d8ff37000b
-:10271000004e780038c0b300d6ff3700804e7800f6
-:1027200048c0b300d3ff3700800c780058c0b30016
-:10273000d0ff37004800dd00990c400068c0b300ae
-:102740000005eb00cbff370000f57d000a05e8002f
-:1027500078c0b300990f5500c6ff310068c0b300c0
-:10276000c4ff37000000eb004f06be004f05be005f
-:102770004f04be00000006008400fa00c0f72f00de
-:102780000f004000e40140000081e8008000e80004
-:10279000c0f72f000f004000adff07004ff8960074
-:1027a000e54f5000f5ff3a005ff89600e14f50000a
-:1027b00004003a0030cf2800db01070010002000a1
-:1027c000050037000004e000ecff3a0090cf28003d
-:1027d000d50107000000eb000080fa0000000600b1
-:1027e00000000000c2e2a90000000000c302a9002e
-:1027f00000000000c322a900000006000101200023
-:102800000080fb000000e800808f500002003a00ca
-:10281000c322a90001003700c322a8000000000065
-:10282000c302a800c302a9008100e900f6ff3a0034
-:1028300000000000c2e2a80000000000c322a900be
-:1028400000000000c2e2a90000000600c322a800a8
-:1028500000c1b300c302a800c302a9000040e90000
-:10286000fcff3a0000000000c2e2a80000000000e7
-:10287000c322a90000000000c2e2a9000000060077
-:10288000cb42a80040002000010020009801070072
-:10289000cb42a90000fa20000100200094010700ab
-:1028a000cb42a80000000600cb62a8004000200038
-:1028b000010020008e010700cb62a9000000060085
-:1028c0008040780040c2bf000018a300fdff3a001e
-:1028d0000180fb00401288000000060040c2a900f1
-:1028e00040c2bf000018a300fdff3a004012800064
-:1028f0004822ef0040c2bf000008a300fdff3200e5
-:10290000401280000080fb0000000600881f780055
-:102910000004eb0008407800b8ff070010c1b300c6
-:10292000e7ff0700c9ff070008407800b3ff070072
-:1029300000c4b300e2ff070080c0b300e0ff07005f
-:1029400050c0b300deff070080c0b300dcff07000b
-:1029500020c2b300daff07000040eb00d8ff0700f9
-:102960000040eb00d6ff07000040eb00d4ff07005b
-:102970000040eb00d2ff07000040eb00d0ff070053
-:1029800000c4b300ceff0700b0ff07000804e80052
-:10299000e60f5400dfff3a00cb62a80010002000d1
-:1029a00001002000520107000004eb0008407800fd
-:1029b00092ff070000c1b300c1ff0700a3ff07009b
-:1029c0000804e800e60f5400f8ff3a004f047800ce
-:1029d00000000600889fbe008004eb0066c444002f
-:1029e0000840780085ff070010c4b300b4ff07005b
-:1029f00010c0b300b2ff070094ff070000fa2000e8
-:102a0000010020003a010700084078007bff070022
-:102a100000c4b300aaff070080c0b300a8ff0700ee
-:102a20008aff07000840780074ff070080c4b300e5
-:102a3000a3ff0700f0c3b300a1ff070083ff070057
-:102a4000084078006dff0700c0c4b3009cff07007a
-:102a500000c4b3009aff07007cff07008904e80068
-:102a6000e68f5400ddff3a004f04be000000060070
+:101a7000004378006312b9008180fb0060092000f8
+:101a80000088b900840040000682fb004038200036
+:101a900000a2b900848040006080200000804000e7
+:101aa00034c0b300335878000442e900fdff3a0027
+:101ab000000006000000fb007801b900e0d1210021
+:101ac000020040000b000900311878008001b100cd
+:101ad0008101b100000006001801fa00889fbe00d5
+:101ae0008a1f7800e4044700480820000e044400e0
+:101af0004a1020000e054500890178000e81e8009b
+:101b00008e00e8000e0078001a0307001e00900007
+:101b1000801f78001e4090000080fb00801f78002e
+:101b20001e80fb00801f780081c72800811f78007d
+:101b300008007800c2fa0700080078005105070085
+:101b40009e00900009007800f00107008a007800ec
+:101b500009007800ed0207007e5092000080fb0033
+:101b6000801f78004e009100de009100809fbe0033
+:101b70001a00be00809fbe006e009100fe00910022
+:101b8000809fbe006e5092000080fb00801f780096
+:101b90005e5092000080fb00801f78004e50920043
+:101ba0000080fb00801f78003e5092000080fb0008
+:101bb000801f78002e5092000080fb00801f78006c
+:101bc0008e089100811f780040c92800801f78008e
+:101bd000080078009afa0700c0fd2f0080874700b0
+:101be0000800780027050700c3ff37002000fa002f
+:101bf000881f780091028000ff3ffc0003ceb300f5
+:101c0000034078004260b70091028800103a8000db
+:101c1000f00bb20072052000610420002474200043
+:101c2000014a7800024a7800004a7800a4c6bf0042
+:101c3000034060006040b300a4e6b700c5c6bf0023
+:101c4000034060003040b300c5e6b700a6c6bf0041
+:101c5000034060005041b300a6e6b700d4c6bf0001
+:101c6000034060005040b300d4e6b700d9c6bf00bf
+:101c700003406000d9e6b700acc6bf000340600077
+:101c8000d040b300ace6b700adc6bf000340600073
+:101c90007041b300ade6b700aec6bf0003406000c0
+:101ca0008041b300aee6b700d6c6bf000340600077
+:101cb000a040b300d6e6b700a8c6bf00034060004e
+:101cc0002041b300a8e6b700d0c6bf0003406000c3
+:101cd0000034a000d0e6b700d1c6bf0003406000ca
+:101ce0007040b300d1e6b7008000eb000116880019
+:101cf000000c230040168800401a2000801688003f
+:101d0000213a88002ca3ef0081c6bf000340600089
+:101d1000c040b30081e6b700aec0bf0088cfb300bb
+:101d2000084060000024a000aee0b7008220a800b8
+:101d30008000fd0000e8b7008000fd000c030700f4
+:101d40009201200001402000008028004d0407007f
+:101d5000920120000140200000802800500407006c
+:101d60008804070093040700d0cc2800c5040700ae
+:101d700050cd280028fa070040358000801f7800e9
+:101d800034ce2800841f7800a0fd2f000f004000f3
+:101d90002bfa0700a0fd2f000f004000b904070038
+:101da00010128000801f780024cf2800841f780044
+:101db00060fd2f000f00400021fa070060fd2f009a
+:101dc0000f004000af04070020128000801f780041
+:101dd00024d02800841f780020fd2f000f00400031
+:101de00017fa070020fd2f000f004000a504070090
+:101df00000128000801f780024d12800841f780002
+:101e0000e0fc2f000f0040000dfa0700e0fc2f005f
+:101e10000f0040009b0407009560a800a9c0bf0008
+:101e2000f1c8b3000140600001c4b300014070007c
+:101e3000a9e0b70092028000ff3ffc0042c0bf0053
+:101e40007f4060000140700042e0b70092028800cd
+:101e50000904070000582200010020005401070077
+:101e60008e02070004040700ae0107008b02070082
+:101e70009701070089020700cb42a800100020004c
+:101e80000100200071040700cb62a90010002000af
+:101e9000010020006d040700b5020700c102070021
+:101ea00000a82100610020006804070095020700d7
+:101eb000df02070010030700fd0307008540a900ab
+:101ec000a9c0bf00084060000024a000a9e0b7003e
+:101ed0009680a800f0875700fffe0700feff37003e
+:101ee0003600f800809fbe00829fbe00849fbe0027
+:101ef000869fbe008680a900cbc2bf0070406000f4
+:101f000018003a00aefdb70010c0b30001e8b700fa
+:101f10000048e2000c003a00b03def00b23def0097
+:101f2000b43def00b63def00b83def00ba3def0025
+:101f3000bc3def00be3def00c03def00c23def00f5
+:101f4000c43def00c63def00aeddbf0074020700e8
+:101f500040c2a900401280008540a9009540a80019
+:101f60004822ef004f03be004f02be004f01be00eb
+:101f70004f00be003600f900004006003600f800b1
+:101f8000809fbe00829fbe00849fbe00869fbe00d1
+:101f9000889fbe008a9fbe000400fa0041128000a4
+:101fa0000144780040c2a90001c8bf00e24f5000c0
+:101fb0000a003200e34f50000e003200e14f5000a3
+:101fc0005b003a000100780004e8b70020c0b300cd
+:101fd00001e8b7004822ef00570037000100780001
+:101fe00003e8b70030c0b30001e8b7004822ef00b3
+:101ff000510037005e0207000800780002e8b700d1
+:1020000020802000ff030700e0bf9f00f1bf9f007a
+:102010000a8020001a4578000a05fb00e8da210052
+:1020200018447800b50307008040780064815700a9
+:102030006355b9000884fb006009200000c4b900a2
+:102040000a0444008180fb00403820000088b90069
+:1020500000044400608020000000440031c0b30050
+:10206000325878008140e900fdff3a00e1da2100b2
+:10207000914078000100fb004200dd0002db2100fe
+:10208000020040006fba9700ffba970010084200a4
+:1020900050904a000140e800aefdb700e54f500007
+:1020a0001e0034000048ec008040780000e8b700d3
+:1020b00010c3b30080cf5000150034000204780034
+:1020c0000105fb00cfd5de0089dc21000a01be003e
+:1020d0001800be0014f90700009cbe00888f540051
+:1020e000faff3a00850307000000fb007801b90001
+:1020f000e0d121000200400001db21000b000900bb
+:10210000311878008001b1007f0307000068ef00fc
+:102110009540a9000168ef000700370000020700a2
+:102120004822ef0010c0b30001e8b70002003700fa
+:102130009540a9000168ef000080fa004f05be003d
+:102140004f04be004f03be004f02be004f01be0051
+:102150004f00be003600f90000400600809fbe0020
+:10216000829fbe00849fbe0072f6800053802000d4
+:102170009341780044c2b3001200370060c2bf0030
+:1021800005c2b3008540600005003a00401380009e
+:10219000844f500002003a00320020008141780054
+:1021a00060c2bf000018a30006003a000200e00071
+:1021b000040032000380fb00401388008341e800e4
+:1021c0000201e90060c2bf000058a300ebff32002b
+:1021d00072f688000300780005e8b70060c2bf000f
+:1021e0000068a3000100320060c2a9004f02be00d7
+:1021f0004f01be004f00be0000400600881f78005f
+:102200000004eb0000902000d10320008f030700a2
+:1022100008407800c20107000804e800ef0f5400ee
+:10222000f8ff34000004eb00f6ff37004013800095
+:10223000d322a80000a8210061002000830307002a
+:10224000d322a90000e82e00610320007f030700cd
+:10225000f7ff3700000278000040eb0000497800eb
+:1022600080497800e4804000090032008482e80060
+:102270000002eb001243780035404300004978002b
+:10228000934940000402e800810f5200f9ff3a0030
+:10229000000006000200fa00889fbe008204780059
+:1022a0000404780052cbb300024a780022c6b3007f
+:1022b000124298002042980031429800494298000a
+:1022c0004848de005042980066004200090178004c
+:1022d00083007800b3f80700e58157006681570056
+:1022e0000800be00dbff0700090444002ff8970038
+:1022f000604498003ff8970070449800688044005c
+:102300004f04be000080fa00000006001000fa0032
+:10231000889fbe008a1f780000057800810478003d
+:102320000100e0000e0032000004eb006a407c0077
+:102330000080fb00801f780020d22800801f7800da
+:102340007a805700bef807007a8057004d030700d7
+:102350000804e800e4875700890f5400f3ff3900b0
+:1023600080d22800470307004f0578004f04be00c5
+:102370000080fa0000000600800178000100e00003
+:102380000a0032000001eb0023c2bf000018a300c6
+:10239000fdff3a00634079000080fb0020118800b7
+:1023a0000201e800828f5000f7ff3a0000000600ab
+:1023b0002000fa00881f78000003be000f04780098
+:1023c000f68747008801780012c0b300024c7800fd
+:1023d0008040eb001144980021449800314498005b
+:1023e00000cdb3004044980080c0b3005044980032
+:1023f0006144980071449800064c98004838dd000c
+:102400004832de0004027000c83ade00144c980026
+:10241000403ade0005002000244c9800483bde00d6
+:10242000364c9800424c9800514c9800624c9800f1
+:10243000714c980001549800115498002154980050
+:10244000315498000e0278004201200060c0b300b1
+:1024500090ff0700800078000e007800c6ff07009c
+:10246000880778004f0478000080fa00000006001a
+:102470002000fa00881f78000f047800e6874700e4
+:1024800088017800004ceb0030c2b3001044980083
+:1024900000c0eb002044980020c0b30030449800f6
+:1024a0000e0278004200200071c1b30060c0b3008a
+:1024b00078ff0700800078000e007800aeff07006c
+:1024c000880778004f0478000080fa0000000600ba
+:1024d0002000fa00881f78000f047800e487470086
+:1024e0008801780011c0b300014c780010c2b3001d
+:1024f00010449800214498000e0278003200200019
+:1025000060c0b30063ff0700800078000e00780011
+:1025100099ff0700880778004f0478000080fa00d0
+:10252000000006004000fa00889fbe008a1f780065
+:102530000f0578002f02b000090220000901780081
+:102540008000eb000a0078001df8070010c0b300ff
+:10255000004d780020c3b300404598000040eb00d8
+:10256000004d980001c8b300114d980002c7b30098
+:10257000224d9800304d9800404d9800514d9800e4
+:10258000624d9800704d98000055980010559800c5
+:1025900020559800315598004055980050559800a6
+:1025a0006055980071559800f0ceb300405d9800da
+:1025b0000e0278008a0178000901780011c3b30087
+:1025c00060c0b30033ff0700800078000e00780081
+:1025d00069ff07008a0778004f0578004f04be00a6
+:1025e0000080fa00000006004000fa00889fbe004c
+:1025f0008a1f78000f0578002f02b0000902200022
+:10260000090178008000eb000a007800ecf7070071
+:102610008040eb00014d780020c3b3004045980096
+:1026200003c4b300034d980022c4b300124d9800b8
+:10263000f0c0b300204d9800314d9800434d9800f4
+:10264000524d9800604d9800714d980001559800ca
+:1026500011559800215598003155980071559800f2
+:102660004155980050c3b30050559800c0c0b30006
+:102670006055980070cfb300405d98000e0278005e
+:102680008a0178000901780011c3b30060c0b3006b
+:1026900000ff0700800078000e00780036ff07007a
+:1026a0008a0778004f0578004f04be000080fa00ca
+:1026b000000006001000fa00889fbe000004eb0036
+:1026c000793e2000d50107000000e000fdff320048
+:1026d000db010700801f780020d22800801f7800cf
+:1026e00078805700d6f7070078805700650207000a
+:1026f0000804e800e4875700890f5400f1ff360012
+:102700004f04be000080fa00000006001001be0069
+:102710008288be0020019000b0019000a2009800c5
+:10272000b300980040019000d0019000c2009800d2
+:10273000d3009800e0019000e30098006049900009
+:10274000e2489800f0499000f3489800005190004a
+:102750008250980090519000935098002051900022
+:10276000a250980030509000b05098000000eb004c
+:1027700000000600889fbe008a9fbe008c9fbe009e
+:102780000006be0082047800830578000044eb0058
+:102790000100370018c0b300a00107000000e000ee
+:1027a000fdff3200a601070080007800e44f5400ce
+:1027b000260032000b003c00e14f540018003200ac
+:1027c00003003c000804e00010003200f2ff370074
+:1027d000e24f540017003200e34f5400eeff3a007e
+:1027e00017003700e64f5400200032001a00350071
+:1027f000e74f540003003200e84f5400e6ff3a0070
+:102800002100370088c0b300e3ff37000044eb002d
+:10281000500b2000808f5000dfff3a00ddff3700b3
+:1028200028c0b30020062000808f5000daff32005d
+:10283000d8ff3700004e780038c0b300d6ff37000d
+:10284000804e780048c0b300d3ff3700800c78007a
+:1028500058c0b300d0ff37004800dd00990c40009d
+:1028600068c0b3000005eb00cbff370000f57d002a
+:102870000a05e80078c0b300990f5500c6ff310083
+:1028800068c0b300c4ff37000000eb004f06be0075
+:102890004f05be004f04be00000006008400fa0091
+:1028a000c0f72f000f004000e40140000081e80065
+:1028b0008000e800c0f72f000f004000adff0700c8
+:1028c0004ff89600e54f5000f5ff3a005ff896008c
+:1028d000e14f500004003a00b0d22800e90107009f
+:1028e00010002000050037000004e000ecff3a0073
+:1028f00010d32800e30107000000eb000080fa007d
+:102900000000060000000000c2e2a9000000000074
+:10291000c302a90000000000c322a90000000600b5
+:10292000010120000080fb000000e800808f5000c3
+:1029300002003a00c322a90001003700c322a80008
+:1029400000000000c302a800c302a9008100e90042
+:10295000f6ff3a0000000000c2e2a80000000000fc
+:10296000c322a90000000000c2e2a9000000060086
+:10297000c322a80000c1b300c302a800c302a9007b
+:102980000040e900fcff3a0000000000c2e2a8009d
+:1029900000000000c322a90000000000c2e2a9005c
+:1029a00000000600cb42a8004000200001002000eb
+:1029b000a6010700cb42a90000fa20000100200078
+:1029c000a2010700cb42a80000000600cb62a800cd
+:1029d00040002000010020009c010700cb62a900fc
+:1029e000000006008040780040c2bf000018a3002d
+:1029f000fdff3a000180fb00401288000000060045
+:102a000040c2a90040c2bf000018a300fdff3a0069
+:102a1000401280004822ef0040c2bf000008a3001f
+:102a2000fdff3200401280000080fb000000060025
+:102a3000881f78000004eb0008407800b8ff07000a
+:102a400010c1b300e7ff0700c9ff07000840780086
+:102a5000b3ff070000c4b300e2ff070080c0b3006b
+:102a6000e0ff070050c0b300deff070080c0b300e6
+:102a7000dcff070020c2b300daff07000040eb00d4
+:102a8000d8ff07000040eb00d6ff07000040eb0036
+:102a9000d4ff07000040eb00d2ff07000040eb002e
+:102aa000d0ff070000c4b300ceff0700b0ff07004f
+:102ab0000804e800e60f5400dfff3a00cb62a800ec
+:102ac0001000200001002000600107000004eb005e
+:102ad0000840780092ff070000c1b300c1ff070063
+:102ae000a3ff07000804e800e60f5400f8ff3a00cf
+:102af0004f04780000000600889fbe008004eb00b1
+:102b000066c444000840780085ff070010c4b30085
+:102b1000b4ff070010c0b300b2ff070094ff070026
+:102b200000fa20000100200048010700084078005a
+:102b30007bff070000c4b300aaff070080c0b300fa
+:102b4000a8ff07008aff07000840780074ff07000d
+:102b500080c4b300a3ff0700f0c3b300a1ff0700c8
+:102b600083ff0700084078006dff0700c0c4b30072
+:102b70009cff070000c4b3009aff07007cff07001a
+:102b80008904e800e68f5400ddff3a004f04be00e0
+:042b9000000006003b
 :020000040000fa
-:102a700000080000c815000000000000ce1e000085
-:102a8000020000000200000000020000c81d00005b
-:102a90000201000000000000ca1e00000400000047
-:102aa000000000009a1f0000260000000200000045
-:102ab0009c1fc2001f000000c21f09000000000090
-:102ac0000200c0001f000000c01f0600020100003d
-:102ad00000000000000000000000060002020000ec
-:102ae00000000000c01f0000060000000000000001
-:102af000d01e0000a0000000020000000100000045
-:102b00000000000000000a000000000000000000bb
-:102b1000006400000000000000000000e803000066
-:102b2000000000000000100027000000000000006e
-:102b300000a08600010000000000000040420f00dd
-:102b400000000000000080009698000000000000d7
-:102b50000000e100f50500000000000000ca9a0036
-:102b60003b00000000000000e40b540002000000e5
-:102b70000000e80076481700000000000010a500e3
-:102b8000d4e8000000000000a0724e001809000008
-:102b9000000040007a10f3005a0000000080c600d8
-:102ba000a47e8d000300000000c16f00f2862300a8
-:102bb000000000008a5d78004563010000006400a9
-:102bc000a7b3b600e00d000000e889000423c700a9
-:102bd0008a000000701f00002a00000002000000b0
-:102be000286e75006c6c29000030310032333400df
-:102bf000353637003839410042434400454600002d
-:102c000030313200333435003637380039616200f4
-:102c10006364650066000000c61f0000020000003b
-:0c2c2000020000000100000000000000a5
+:102b940000080000c815000000000000ce1e000060
+:102ba400020000000200000000020000c81d000036
+:102bb4000201000000000000ca1e00000400000022
+:102bc400000000009a1f0000260000000200000020
+:102bd4009c1fc2001f000000c21f0900000000006b
+:102be4000200c0001f000000c01f06000201000018
+:102bf40000000000000000000000060002020000c7
+:102c040000000000c01f00000600000000000000db
+:102c1400d01e0000a000000002000000010000001f
+:102c24000000000000000a00000000000000000096
+:102c3400006400000000000000000000e803000041
+:102c44000000000000001000270000000000000049
+:102c540000a08600010000000000000040420f00b8
+:102c640000000000000080009698000000000000b2
+:102c74000000e100f50500000000000000ca9a0011
+:102c84003b00000000000000e40b540002000000c0
+:102c94000000e80076481700000000000010a500be
+:102ca400d4e8000000000000a0724e0018090000e3
+:102cb400000040007a10f3005a0000000080c600b3
+:102cc400a47e8d000300000000c16f00f286230083
+:102cd400000000008a5d7800456301000000640084
+:102ce400a7b3b600e00d000000e889000423c70084
+:102cf4008a000000701f00002a000000020000008b
+:102d0400286e75006c6c29000030310032333400b9
+:102d14003536370038394100424344004546000007
+:102d240030313200333435003637380039616200cf
+:102d34006364650066000000c61f00000200000016
+:0c2d440002000000010000000000000080
 :020000040000fa
-:102c2c00809fbe00829fbe003400f8000000200090
-:102c3c00a00188008560a90022c2bf000008a30083
-:102c4c000c00320082dc210012417800a3dc210050
-:102c5c00301180008280fb0080f079000241e80096
-:102c6c0022c2bf000008a300f9ff3a00020078005e
-:102c7c00c8fdb70022c2bf000018a300010032003b
-:102c8c002222a9003400f9004f01be004f00be0003
-:102c9c000040060000017800904078000104e0003c
-:102cac000800320023c2bf000018a300fdff3a0049
-:102cbc000100fb0020118800d24078000104e000e4
-:102ccc00f8ff3a0000000600000178009040780000
-:102cdc000104e0000800320033c2bf000018a3005a
-:102cec00fdff3a000100fb00a0118800d2407800e3
-:102cfc000104e000f8ff3a00000006008040eb0001
-:102d0c00c8ddbf00c95de30001003a0011c0b3008b
-:102d1c00014078000004a2000080fb0000000600c7
-:102d2c0092dc2100124178008080eb00c8ddbf00ee
-:102d3c000014e100060032008280fb00a0dc2100c0
-:102d4c00614078008080fb000240e800c9fdb700bc
-:102d5c000100780000000600c8ddbf00c9fdb70007
-:102d6c000000060000118800111188004211880033
-:102d7c000040eb00c8fdb700c9fdb700000006001d
-:102d8c008011880091118800c21188000000060093
-:102d9c000040eb00cafeb700cbfeb70060c0b3002a
-:102dac00ccfeb70000000600cbdebf000080fb00ad
-:102dbc0000000600cbfeb70000000600cb5eec0066
-:102dcc00cbfeb700c1ec2100914078000104e1007a
-:102ddc0001003900cb7eef0000000600cadebf0008
-:102dec000080fb0000000600ca5eec00cafeb700c3
-:102dfc00c1ec2100914078000104e1000100390090
-:102e0c00ca7eef0000000600b1ec21009140780072
-:102e1c00a0ec210090c0100002003b00ccdebf00f3
-:102e2c0080c040000180fb0000000600881f780075
-:102e3c000004eb00f4ff07000080fb00c1ec210054
-:102e4c00914078008180fb008100e900810f5000e7
-:102e5c000100350018002000080078004f047800ad
-:102e6c00000006004022ef0001012000401280000b
-:102e7c008100e900fdff3a008540a900e023200015
-:102e8c00101288002112880040c2a90041e2a8005b
-:102e9c00000006006022ef000201200040138000b9
-:102eac000201e900fdff3a008820a90060c2bf00c2
-:102ebc0031ceb300014060000044a00060e2b700d6
-:102ecc000010200010138800221388006322a90030
-:102edc0062e2a80060c2a9006402a80061e2a80036
-:042eec0000000600dc
+:102d5000809fbe00829fbe008560a90022c2bf0086
+:102d60000008a3000c00320082dc21001241780030
+:102d7000a3dc2100301180008280fb0080f079000c
+:102d80000241e80022c2bf000008a300f9ff3a0098
+:102d900002007800c8fdb70022c2bf000018a300df
+:102da000010032002222a9004f01be004f00be00e8
+:102db0000040060000017800904078000104e00027
+:102dc0000800320023c2bf000018a300fdff3a0034
+:102dd0000100fb0020118800d24078000104e000cf
+:102de000f8ff3a00000006000001780090407800eb
+:102df0000104e0000800320033c2bf000018a30045
+:102e0000fdff3a000100fb00a0118800d2407800cd
+:102e10000104e000f8ff3a00000006008040eb00eb
+:102e2000c8ddbf00c95de30001003a0011c0b30076
+:102e3000014078000004a2000080fb0000000600b2
+:102e400092dc2100124178008080eb00c8ddbf00d9
+:102e50000014e100060032008280fb00a0dc2100ab
+:102e6000614078008080fb000240e800c9fdb700a7
+:102e70000100780000000600c8ddbf00c9fdb700f2
+:102e8000000006000011880011118800421188001e
+:102e90000040eb00c8fdb700c9fdb7000000060008
+:102ea0008011880091118800c2118800000006007e
+:102eb0000040eb00cafeb700cbfeb70060c0b30015
+:102ec000ccfeb70000000600cbdebf000080fb0098
+:102ed00000000600cbfeb70000000600cb5eec0051
+:102ee000cbfeb700c1ec2100914078000104e10065
+:102ef00001003900cb7eef0000000600cadebf00f3
+:102f00000080fb0000000600ca5eec00cafeb700ad
+:102f1000c1ec2100914078000104e100010039007a
+:102f2000ca7eef0000000600b1ec2100914078005d
+:102f3000a0ec210090c0100002003b00ccdebf00de
+:102f400080c040000180fb0000000600881f780060
+:102f50000004eb00f4ff07000080fb00c1ec21003f
+:102f6000914078008180fb008100e900810f5000d2
+:102f70000100350018002000080078004f04780098
+:102f8000000006004022ef000101200040128000f6
+:102f90008100e900fdff3a008540a900e023200000
+:102fa000101288002112880040c2a90041e2a80046
+:102fb000000006006022ef000201200040138000a4
+:102fc0000201e900fdff3a008820a90060c2bf00ad
+:102fd00031ceb300014060000044a00060e2b700c1
+:102fe0000010200010138800221388006322a9001b
+:102ff00062e2a80060c2a9006402a80061e2a80021
+:10300000000006000400fa00648157008000780088
+:1030100031597800315978001149780020409000ea
+:103020000004e00003003d0000c0eb00f0ff9f0043
+:10303000020037000040eb00f0ff9f006fb89700e0
+:0c304000ffb897000080fa0000000600b6
 :020000040000fa
-:102ef000f03fb1000180b10006003500ee0309008b
-:102f000000000000403fb1000180b100fbff3d0028
-:102f10001000b000203fb000020035000080090022
-:082f20000000000000000600a3
+:10304c00f03fb1000180b10006003500ee0309002d
+:10305c0000000000403fb1000180b100fbff3d00cb
+:10306c001000b000203fb0000200350000800900c5
+:08307c00000000000000060046
 :020000040000fa
-:082f28006aff0700000006002b
+:0830840058ff070000000600e0
 :00000001FF
index 75a5b80..c7b34af 100755 (executable)
Binary files a/dist/default/production/ad2010.production.out and b/dist/default/production/ad2010.production.out differ
diff --git a/main.c b/main.c
index ffd7ac5..58ee41c 100644 (file)
--- a/main.c
+++ b/main.c
@@ -17,6 +17,7 @@
 #include "myad.h"
 #include "delay.h"
 #include "ring.h"
+#include "byte2var.h"
 
 _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx2 )
 //_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_OFF & FNOSC_FRC)
@@ -64,11 +65,22 @@ void test_ublox_rcv_mon(void)
     unsigned int    len;
     unsigned char   payload[128];
     char    sz[128];
+    UbloxNavTimeUtc *gps, gps1;
 
+    gps = &gps1;
+    
     while(1) {
         ublox_rcv_pkt(&class, &id, &len, payload);
         sprintf(sz, "CLASS=%02X ID=%02X LEN=%d\r\n", class, id, len);
         PDEBUG(sz);
+        ublox_debug_pkt_out(payload, len);
+        ublox_decode_nav_timeutc(payload, gps);
+        sprintf(sz, "%04u/%02d/%02d %02d:%02d:%02d.%09ld %6lums %6luns %02X\r\n",
+            gps->year, gps->month, gps->day, gps->hour, gps->min, gps->sec, gps->nano,
+            gps->tow, gps->tacc, gps->valid
+        );
+        PDEBUG(sz);
+
     }
 }
 
@@ -86,27 +98,7 @@ static char adint_cnt = 0;  // 0〜AD_SAMPLE-1
 static char adint_sts = ADSTS_IDLE;
 static long adint_add[AD_CHNUM];    // 1秒平均用加算
 
-/*
- * 3byte binary -> signed long
- * Litte Endian
- */
-long byte3_to_long(unsigned char *in)
-{
-    long    out;
-    unsigned char    *ptr = (unsigned char*)&out;
-
-    memcpy(ptr, in, 3);
-//    ptr[0] = in[0];
-//    ptr[1] = in[1];
-//    ptr[2] = in[2];
-
-    if (in[2] & 0x80) {
-        ptr[3] = 0xFF;
-    } else {
-        ptr[3] = 0x00;
-    }
-    return out;
-}
+
 
 int main(int argc, char** argv) {
     unsigned int i;
@@ -120,6 +112,8 @@ int main(int argc, char** argv) {
     unsigned int baudrate1 = ( unsigned int )( Baudrate1 + 0.5 );
     char    sz[32];
 
+    // 割り込み禁止
+    SET_CPU_IPL( 7 );
     __builtin_write_OSCCONL(OSCCON & 0xbf); //clear the bit 6 of OSCCONL to unlock Pin Re-map
 
     // UART1ピン割り当て
@@ -192,9 +186,10 @@ int main(int argc, char** argv) {
 //    spi2_int_enable();
 //    spi2_set_int_level(4);
 
-    // 割り込み許可
-    // CPU割り込み優先レベル デフォルト2 ペリフェラルはデフォルト4
-    SRbits.IPL = 2;
+    //**** 割り込み許可 **************************************************
+    // CPU割り込み優先レベル デフォルト0 ペリフェラルはデフォルト4
+//    SRbits.IPL = 2;
+    SET_CPU_IPL( 2 );
 
     // UBXプロトコルのみにする
     ublox_rcvbuf_clear();
@@ -223,6 +218,7 @@ int main(int argc, char** argv) {
     
     ring_init();
     // AD SPI1 割り込み設定のみ 許可しない
+    // INT1ハンドラ内で有効にされる
     spi1_intf_clear();
     spi1_set_int_level(4);
 
@@ -252,8 +248,10 @@ int main(int argc, char** argv) {
 /*
  * INT1(RP12) AD DRDY0割り込みハンドラ
  * Negativ Edge
+ * SPI1受信開始してSPI1割り込み有効にする
+ *
  */
-void _ISR _INT1Interrupt(void)
+void __attribute__((interrupt, no_auto_psv)) _INT1Interrupt(void)
 {
     IFS1bits.INT1IF = 0;
     if (!ad_is_drdy0_enable()) {
@@ -279,8 +277,12 @@ void _ISR _INT1Interrupt(void)
 }
 /*
  * AD SPI1 Interrupt Handler
+ * ADから受信したデータをADバッファに格納する
+ * 6CHぶん受信したらSPI1割り込みをOFF
+ * 
  */
-void _ISR _SPI1Interrupt(void)
+//void _ISR _SPI1Interrupt(void)
+void __attribute__((interrupt, no_auto_psv)) _SPI1Interrupt(void)
 {
     static unsigned char in[3];
     unsigned char c;
@@ -354,7 +356,7 @@ void _ISR _SPI1Interrupt(void)
  * DataOut SPI2 Interrupt Handler
  * TX FIFOに1byteの空きが出来ると発生
  */
-void _ISR _SPI2Interrupt(void)
+void __attribute__((interrupt, no_auto_psv)) _SPI2Interrupt(void)
 {
 static unsigned char   spi2c;
     unsigned char   rx;
index 555e845..c5427fb 100644 (file)
--- a/myuart.c
+++ b/myuart.c
@@ -5,10 +5,10 @@
 static unsigned char   ubx_w, ubx_r;
 static unsigned char    ubx_buf[256];
 
-void _ISR _U1RXInterrupt(void)
+void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt(void)
 {
     // 割り込みフラグクリア
-    IFS0bits.U1RXIF = 0;
+    uart1_rx_intf_clear();
     while(uart1_rx_is_rdy()) {
         ubx_buf[ubx_w++] = uart1_getc();
     }
index 0c091ae..eedc7eb 100644 (file)
--- a/myuart.h
+++ b/myuart.h
 #define uart1_set_int_level(i)  IPC2bits.U1RXIP = (i)
 #define uart1_rx_int_enable()  IEC0bits.U1RXIE = 1
 #define uart1_rx_int_disable()  IEC0bits.U1RXIE = 0
+#define uart1_rx_intf_clear()    IFS0bits.U1RXIF = 0  // 割り込みフラグクリア
 
 #define uart2_set_int_level(i)  IPC7bits.U2RXIP = (i)
 #define uart2_rx_int_enable()  IEC1bits.U2RXIE = 1
 #define uart2_rx_int_disable()  IEC1bits.U2RXIE = 0
+#define uart2_rx_intf_clear()    IFS1bits.U2RXIF = 0  // 割り込みフラグクリア
 
 
 void uart1_puts(char *s);
index f40ed2b..de2a8fe 100644 (file)
@@ -35,10 +35,10 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
 DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
 
 # Object Files Quoted if spaced
-OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/byte2var.o ${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
 
 # Object Files
-OBJECTFILES=${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
+OBJECTFILES=${OBJECTDIR}/byte2var.o ${OBJECTDIR}/debug_print.o ${OBJECTDIR}/main.o ${OBJECTDIR}/myad.o ${OBJECTDIR}/myspi.o ${OBJECTDIR}/myuart.o ${OBJECTDIR}/ring.o ${OBJECTDIR}/ublox.o
 
 
 CFLAGS=
@@ -89,6 +89,12 @@ endif
 # ------------------------------------------------------------------------------------
 # Rules for buildStep: compile
 ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+${OBJECTDIR}/byte2var.o: byte2var.c  nbproject/Makefile-${CND_CONF}.mk
+       @${MKDIR} ${OBJECTDIR} 
+       @${RM} ${OBJECTDIR}/byte2var.o.d 
+       @${RM} ${OBJECTDIR}/byte2var.o.ok ${OBJECTDIR}/byte2var.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/byte2var.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/byte2var.o.d" -o ${OBJECTDIR}/byte2var.o byte2var.c  
+       
 ${OBJECTDIR}/debug_print.o: debug_print.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/debug_print.o.d 
@@ -132,6 +138,12 @@ ${OBJECTDIR}/ring.o: ring.c  nbproject/Makefile-${CND_CONF}.mk
        @${FIXDEPS} "${OBJECTDIR}/ring.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/ring.o.d" -o ${OBJECTDIR}/ring.o ring.c  
        
 else
+${OBJECTDIR}/byte2var.o: byte2var.c  nbproject/Makefile-${CND_CONF}.mk
+       @${MKDIR} ${OBJECTDIR} 
+       @${RM} ${OBJECTDIR}/byte2var.o.d 
+       @${RM} ${OBJECTDIR}/byte2var.o.ok ${OBJECTDIR}/byte2var.o.err 
+       @${FIXDEPS} "${OBJECTDIR}/byte2var.o.d" $(SILENT) -c ${MP_CC} $(MP_EXTRA_CC_PRE)  -g -omf=elf -x c -c -mcpu=$(MP_PROCESSOR_OPTION) -O1 -MMD -MF "${OBJECTDIR}/byte2var.o.d" -o ${OBJECTDIR}/byte2var.o byte2var.c  
+       
 ${OBJECTDIR}/debug_print.o: debug_print.c  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} ${OBJECTDIR} 
        @${RM} ${OBJECTDIR}/debug_print.o.d 
@@ -181,11 +193,11 @@ endif
 ifeq ($(TYPE_IMAGE), DEBUG_RUN)
 dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} 
-       ${MP_CC} $(MP_EXTRA_LD_PRE)  -omf=elf -mcpu=$(MP_PROCESSOR_OPTION)  -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -o dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out ${OBJECTFILES_QUOTED_IF_SPACED}        -Wl,--defsym=__MPLAB_BUILD=1,--heap=64,--no-check-sections$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__ICD2RAM=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_ICD3=1
+       ${MP_CC} $(MP_EXTRA_LD_PRE)  -omf=elf -mcpu=$(MP_PROCESSOR_OPTION)  -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -o dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out ${OBJECTFILES_QUOTED_IF_SPACED}        -Wl,--defsym=__MPLAB_BUILD=1,--heap=40,--no-check-sections$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__ICD2RAM=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_ICD3=1
 else
 dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk
        @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} 
-       ${MP_CC} $(MP_EXTRA_LD_PRE)  -omf=elf -mcpu=$(MP_PROCESSOR_OPTION)  -o dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out ${OBJECTFILES_QUOTED_IF_SPACED}        -Wl,--defsym=__MPLAB_BUILD=1,--heap=64,--no-check-sections$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION)
+       ${MP_CC} $(MP_EXTRA_LD_PRE)  -omf=elf -mcpu=$(MP_PROCESSOR_OPTION)  -o dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out ${OBJECTFILES_QUOTED_IF_SPACED}        -Wl,--defsym=__MPLAB_BUILD=1,--heap=40,--no-check-sections$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION)
        ${MP_CC_DIR}/pic30-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/ad2010.${IMAGE_TYPE}.out -omf=elf
 endif
 
index 6dab236..3d47df6 100644 (file)
@@ -1,5 +1,5 @@
 #
-#Thu Nov 17 20:17:23 JST 2011
+#Mon Nov 21 17:20:05 JST 2011
 default.languagetoolchain.dir=/opt/microchip/mplabc30/v3.30c/bin
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=11bb82e71763925c87fa30f6c65473b1
 default.languagetoolchain.version=3_30
index 92c2985..a57487b 100644 (file)
@@ -20,6 +20,8 @@
     <logicalFolder name="SourceFiles"
                    displayName="Source Files"
                    projectFiles="true">
+      <itemPath>byte2var.c</itemPath>
+      <itemPath>byte2var.h</itemPath>
       <itemPath>debug_print.c</itemPath>
       <itemPath>debug_print.h</itemPath>
       <itemPath>delay.h</itemPath>
         <property key="general-code-protect" value="no_code_protect"/>
         <property key="secure-write-protect" value="no_write_protect"/>
         <property key="warn-section-align" value="false"/>
-        <property key="heap-size" value="64"/>
+        <property key="heap-size" value="40"/>
         <property key="remove-unused-sections" value="false"/>
         <property key="stack-size" value=""/>
         <property key="linker-symbols" value=""/>
diff --git a/ublox.c b/ublox.c
index 5e0cf14..23abbf8 100644 (file)
--- a/ublox.c
+++ b/ublox.c
@@ -3,6 +3,7 @@
 
 #include "ublox.h"
 #include "myuart.h"
+#include "byte2var.h"
 
 // UBX packet内のデータ位置
 #define UBX_CLASS   2
@@ -26,7 +27,7 @@
 /*
  len: payload length
  */
-void ublox_make_sum(unsigned char *pkt, unsigned int lenp, unsigned char *suma, unsigned char *sumb)
+static void ublox_make_sum(unsigned char *pkt, unsigned int lenp, unsigned char *suma, unsigned char *sumb)
 {
     unsigned int    i;
     *suma = 0;
@@ -37,8 +38,9 @@ void ublox_make_sum(unsigned char *pkt, unsigned int lenp, unsigned char *suma,
     }
 }
 /*
+ * GPSに送信するコマンドパケットの作成
  * unsgined char len: payloadのバイト数
- return: 作成したパケットpktのバイト数
return: 作成したパケットpktのバイト数
  */
 int ublox_make_cmd(unsigned char id1, unsigned char id2, unsigned int lenp, unsigned char *payload, unsigned char pkt[])
 {
@@ -51,14 +53,15 @@ int ublox_make_cmd(unsigned char id1, unsigned char id2, unsigned int lenp, unsi
     pkt[4] = (0xFF & lenp);
     pkt[5] = (0xFF & (lenp >> 8));
     memcpy(&pkt[UBX_PAYLOAD], payload, lenp);
+    // Check Sum
     ublox_make_sum(pkt, lenp, &suma, &sumb);
     pkt[UBX_PAYLOAD + lenp] = suma;
     pkt[UBX_PAYLOAD + lenp + 1] = sumb;
     return UBX_PKTLEN(lenp);
 }
 /*
- Debug用
- * GPS送信パケットのモニタ出力
Debug用
+ * GPSから受信したパケットのモニタ出力
  */
 void ublox_debug_pkt_out(unsigned char *pkt, int len)
 {
@@ -72,7 +75,8 @@ void ublox_debug_pkt_out(unsigned char *pkt, int len)
     PDEBUG("\r\n");
 }
 /*
- ubloxにデータ送信
+ * ubloxにデータ送信
+ * polling
  */
 void ublox_send(unsigned char *pkt, unsigned int len_pkt)
 {
@@ -85,7 +89,7 @@ void ublox_send(unsigned char *pkt, unsigned int len_pkt)
 
     }
 }
-
+/**** コマンド送信 *************************/
 /*
  * CFG-PRT
  *  プロトコル選択
@@ -270,8 +274,7 @@ void ublox_send_cfg_tp5_timepulse1(void)
     len_pkt = ublox_make_cmd(UBX_CLS_CFG, UBX_ID_CFG_TP5, lenp, payload, pkt);
     ublox_send(pkt, len_pkt);
 }
-
-
+/**** DEBUG ************************************************/
 #if 0
 void ublox_rcv_poll(void)
 {
@@ -306,6 +309,9 @@ void ublox_rcv_poll(void)
     PDEBUG("\r\n");
 }
 #endif
+/*
+ * polling 受信
+ */
 void ublox_rcv_poll(void)
 {
     unsigned int i, data;
@@ -321,7 +327,28 @@ void ublox_rcv_poll(void)
         PDEBUG(buf);
     }
 }
+/**** パケット受信 *************************************/
+/*
+ * NAV-TIMEUTCデコード
+ * return
+ *  0=OK
+ *  -1=エラー
+ */
 
+int ublox_decode_nav_timeutc(unsigned char *payload, UbloxNavTimeUtc *g)
+{
+    g->tow = byte4_to_ulong(payload);   // ms
+    g->tacc = byte4_to_ulong(payload+4);    // ns
+    g->nano = byte4_to_long(payload+8);     // ns
+    g->year = byte2_to_uint(payload+12);
+    g->month = byte1_to_uchar(payload+14);
+    g->day = byte1_to_uchar(payload+15);
+    g->hour = byte1_to_uchar(payload+16);
+    g->min = byte1_to_uchar(payload+17);
+    g->sec = byte1_to_uchar(payload+18);
+    g->valid = byte1_to_uchar(payload+19);
+    return 0;
+}
 /*
  * 受信バッファから1packet取り出す
  * UART割り込み使用
diff --git a/ublox.h b/ublox.h
index 6a12472..72b5422 100644 (file)
--- a/ublox.h
+++ b/ublox.h
 // NAV-
 #define UBX_ID_NAV_TIMEUTC  0x21
 
-void ublox_make_sum(unsigned char *pkt, unsigned int lenp, unsigned char *suma, unsigned char *sumb);
+// NAV-TIMEUTCパケットのデータ格納
+typedef struct {
+    unsigned long   tow;    // ms GPS Millisecond Time of Week
+    unsigned long   tacc;   // ns Time Accuracy Estimate
+    long   nano;            //ns Nanoseconds of second, range -1e9 .. 1e9 (UTC)
+    unsigned int    year;   // UTC
+    unsigned char   month;
+    unsigned char   day;
+    unsigned char   hour;
+    unsigned char   min;
+    unsigned char   sec;
+    unsigned char   valid;  // Validity Flags
+                            //  bit0 validTOW 1 = Valid Time of Week
+                            //  bit1 validWKN 1 = Valid Week Number
+                            //  bit2 validUTC 1 = Valid UTC (Leap Seconds already known)
+} UbloxNavTimeUtc;
+
 int ublox_make_cmd(unsigned char id1, unsigned char id2, unsigned int lenp, unsigned char *payload, unsigned char pkt[]);
 void ublox_debug_pkt_out(unsigned char *pkt, int len);
 void ublox_send(unsigned char *pkt, unsigned int len_pkt);