Matthias Grob & Manuel Stalder / Mbed 2 deprecated DecaWave

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
manumaet
Date:
Tue Dec 02 13:55:01 2014 +0000
Parent:
32:041dd02e0e3b
Child:
34:f56962030c5c
Commit message:
first simple measurement works (gives 1.0362 us)

Changed in this revision

MMRanging/MMRanging.cpp Show annotated file Show diff for this revision Revisions of this file
MMRanging/MMRanging.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/MMRanging/MMRanging.cpp	Tue Dec 02 13:32:34 2014 +0000
+++ b/MMRanging/MMRanging.cpp	Tue Dec 02 13:55:01 2014 +0000
@@ -26,18 +26,20 @@
             TX.type = 2;
             TX.sequence_number = RX.sequence_number;
             TX.time_difference_receiver = 0;
-            dw.sendFrame((uint8_t*)&TX, 10);
+            TX.dummy = 1;
+            dw.sendFrame((uint8_t*)&TX, 12);
             break;
         case 2:
             rangingtimingsSender[RX.sequence_number][1] = dw.getRXTimestamp();
             break;
         case 3:
             TX.type = 4;
-            TX.time_difference_receiver = 0;//rangingtimingsReceiver[TX.sequence_number][1] - rangingtimingsReceiver[TX.sequence_number][0];
-            dw.sendFrame((uint8_t*)&TX, 10);
+            TX.time_difference_receiver = rangingtimingsReceiver[TX.sequence_number][1] - rangingtimingsReceiver[TX.sequence_number][0];
+            TX.dummy = 1;
+            dw.sendFrame((uint8_t*)&TX, 12);
             break;
         case 4:
-            tofs[RX.sequence_number] = /*rangingtimingsSender[RX.sequence_number][1] - rangingtimingsSender[RX.sequence_number][0] - */RX.time_difference_receiver;
+            tofs[RX.sequence_number % 10] = rangingtimingsSender[RX.sequence_number][1] - rangingtimingsSender[RX.sequence_number][0] - (uint32_t)RX.time_difference_receiver;
             //tofs[RX->sequence_number] = (rangingtimingsSender[RX->sequence_number][1] - rangingtimingsSender[RX->sequence_number][0] - RX->time_difference_receiver) >> 1;
             break;
         default : break;
@@ -84,13 +86,15 @@
     TX.type = 1;
     TX.sequence_number = counter;
     TX.time_difference_receiver = 0;
-    dw.sendFrame((uint8_t*)&TX, 10);
+    TX.dummy = 1;
+    dw.sendFrame((uint8_t*)&TX, 12);
 }
 
 void MMRanging::requestTime() {
     TX.type = 3;
     TX.sequence_number = counter;
     TX.time_difference_receiver = 0;
-    dw.sendFrame((uint8_t*)&TX, 10);
+    TX.dummy = 1;
+    dw.sendFrame((uint8_t*)&TX, 12);
     counter++;
 }
\ No newline at end of file
--- a/MMRanging/MMRanging.h	Tue Dec 02 13:32:34 2014 +0000
+++ b/MMRanging/MMRanging.h	Tue Dec 02 13:55:01 2014 +0000
@@ -23,6 +23,7 @@
             uint8_t type;
             uint8_t sequence_number;
             uint64_t time_difference_receiver;
+            uint16_t dummy;
         } ;
         uint64_t rangingtimingsSender[10][2];
         uint64_t rangingtimingsReceiver[10][2];
--- a/main.cpp	Tue Dec 02 13:32:34 2014 +0000
+++ b/main.cpp	Tue Dec 02 13:55:01 2014 +0000
@@ -17,12 +17,12 @@
     pc.printf("EUI register: %016llX\r\n", dw.getEUI());
     pc.printf("Voltage: %f\r\n", dw.getVoltage());
 
-    r.receiver = true;
+    //r.receiver = true;
     
     bool senderstart = true;
     while(1) {
         for(int j = 0; j < 10; j++)
-            pc.printf("%d  ", r.tofs[j]);//*MMRANGING_TIMEUNIT);
+            pc.printf("%f ", r.tofs[j]*MMRANGING_TIMEUNIT);
         pc.printf("\r\n");
         for(int j = 0; j < 10; j++)
             if(r.event[j][0] == '!') {