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:
10:d077bb12d259
Parent:
8:7a9c61242e2f
Child:
11:c87d37db2c6f
--- a/DW1000/DW1000.h	Thu Nov 20 16:00:34 2014 +0000
+++ b/DW1000/DW1000.h	Fri Nov 21 14:33:23 2014 +0000
@@ -61,7 +61,9 @@
         void setEUI(uint64_t EUI);
         float getVoltage();
         
-        void sendFrame(char* message, int length);
+        void sendString(char* message);                                                         // to send String with arbitrary length
+        char* receiveString();                                                                  // to receive char string with arbitrary length (ATTENTION! you have to delete the returned memory location as "client delete[] receive;")
+        void sendFrame(uint8_t* message, int length);
         void receiveFrame();
         
     //private:
@@ -76,6 +78,7 @@
         DigitalOut cs;                                                                          // Slave selector for SPI-Bus (here explicitly needed to start and end SPI transactions also usable to wake up DW1000)
         InterruptIn irq;                                                                        // Pin used to handle Events from DW1000 by an Interrupthandler
         
+        uint8_t readRegister8(uint8_t reg, uint16_t subaddress);                                // expressive to read just one byte
         void writeRegister8(uint8_t reg, uint16_t subaddress, uint8_t buffer);                  // expressive to write just one byte
         
         void readRegister(uint8_t reg, uint16_t subaddress, uint8_t *buffer, int length);