This is the DW1000 driver and our self developed distance measurement application based on it. We do this as a semester thesis at ETH Zürich under the Automatic Control Laboratory in the Department of electrical engineering.

Dependencies:   mbed

Revision:
25:d58b0595b300
Parent:
24:6f25ba679490
Child:
26:a65c6f26c458
--- a/main.cpp	Thu Nov 27 16:26:42 2014 +0000
+++ b/main.cpp	Thu Nov 27 17:51:54 2014 +0000
@@ -22,7 +22,7 @@
     TX_timestamp = dw.readRegister40(DW1000_TX_TIME, 0);
     RX_timestamp = dw.readRegister40(DW1000_RX_TIME, 0);
     dw.receiveString(messageRX);                             // receive a string
-#if 0
+#if 1
     message[0] = 'A';
     for(int i = 0; i < 10; i++)
         message[i+1] = messageRX[i];
@@ -68,7 +68,7 @@
     dw.callbackTX = &callbackTX;
     
     // Receiver initialisation
-    dw.writeRegister16(DW1000_SYS_MASK, 0, 0x4000); //| 0x0080); // TODO: RX only good frame 0x4000, RX all frames 0x2000, TX done 0x0080
+    dw.writeRegister16(DW1000_SYS_MASK, 0, 0x4080); //| 0x0080); // TODO: RX only good frame 0x4000, RX all frames 0x2000, TX done 0x0080
     dw.startRX();
     
     while(1) {
@@ -77,7 +77,7 @@
                 pc.printf("%s Time: %fus\r\n", event[i], eventtimes[i]*timeunit);
                 event[i][0] = 'X';
             }    
-#if 1
+#if 0
         sprintf(message, "%d", i);
         //if ((i % 10) > 5) {
             dw.sendString(message);