A library for Silicon Sensing DMU02
DMU.h
- Committer:
- ramwilliford
- Date:
- 2013-03-11
- Revision:
- 0:e4342b551612
- Child:
- 1:b57a8210864d
File content as of revision 0:e4342b551612:
#ifndef DMU_H #define DMU_H #include "mbed.h" /** * A DMU interface for communicating with the Silicon Sensing DMU02 Dynamics Measurement Unit * */ class DMU { public: /** Creates a DMU interface for using regural mbed pins * * @param MOSI SPI MOSI line * @param MISO SPI MISO line * @param SCLK SPI SCLK line * @param S0-S2 Select lines for X, Y and Z axi * */ DMU(PinName MOSI, PinName MISO, PinName SCLK, PinName S0, PinName S1, PinName S2); /** Return the acceleration in the direction of the selected axis * * @param axis The axis you wish to query: x, y or z. */ float acceleration(char axis); /** Return the roll * */ float roll(); /** Return the pitch * */ float pitch(); /** Return the yaw * */ float yaw(); /** forces the device to perform the built-in test * */ void test(); protected: //Device Initialization void _init(); //used to set selected axis for query, active low void _selectAxis(char axis); //deselects all axis, inactive high void _deselectAxis(); //writes control byte to device, populates data bytes, returns bool of if data was received correctly bool _write(char controlByte); bool _correctChecksumReceived(char statusByte, char chkSum); // Regular mbed pins to drive chip, a SPI bus and S0-S2 which function as slave selects, active low SPI *_spi; BusOut *_cs; // Received data bytes char data0; char data1; char data2; char data3; // Timer used to ensure only 10 Hz total reads Timer _repClock; }; #endif