..

Dependencies:   mbed

Committer:
allanalpha
Date:
Fri Feb 01 15:24:15 2013 +0000
Revision:
0:ff5187998c84
what ev

Who changed what in which revision?

UserRevisionLine numberNew contents of line
allanalpha 0:ff5187998c84 1 /*
allanalpha 0:ff5187998c84 2 Accelerometer driver.
allanalpha 0:ff5187998c84 3
allanalpha 0:ff5187998c84 4 CPV, 4/9/2009
allanalpha 0:ff5187998c84 5 */
allanalpha 0:ff5187998c84 6
allanalpha 0:ff5187998c84 7 #ifndef __ACCELEROMETER_H__
allanalpha 0:ff5187998c84 8 #define __ACCELEROMETER_H__
allanalpha 0:ff5187998c84 9
allanalpha 0:ff5187998c84 10
allanalpha 0:ff5187998c84 11 #include "mbed.h"
allanalpha 0:ff5187998c84 12 #include "filters.h"
allanalpha 0:ff5187998c84 13
allanalpha 0:ff5187998c84 14
allanalpha 0:ff5187998c84 15 class Accelerometer1D
allanalpha 0:ff5187998c84 16 {
allanalpha 0:ff5187998c84 17 public:
allanalpha 0:ff5187998c84 18 void initialise(PinName pin, int tau, int offset=0xffff>>1);
allanalpha 0:ff5187998c84 19 void tick(void) { m_filter.tick((int)AnalogIn(m_pin).read_u16()&0xfff0); }
allanalpha 0:ff5187998c84 20 int operator()(void) { return m_filter() - m_offset; }
allanalpha 0:ff5187998c84 21 int read(void) { return m_filter() - m_offset; }
allanalpha 0:ff5187998c84 22
allanalpha 0:ff5187998c84 23 protected:
allanalpha 0:ff5187998c84 24 FilterIirI m_filter;
allanalpha 0:ff5187998c84 25 PinName m_pin;
allanalpha 0:ff5187998c84 26 int m_offset;
allanalpha 0:ff5187998c84 27 };
allanalpha 0:ff5187998c84 28
allanalpha 0:ff5187998c84 29
allanalpha 0:ff5187998c84 30 class Accelerometer2D
allanalpha 0:ff5187998c84 31 {
allanalpha 0:ff5187998c84 32 public:
allanalpha 0:ff5187998c84 33 Accelerometer2D(PinName ch0, PinName ch1, int tau, int offset=0xffff>>1);
allanalpha 0:ff5187998c84 34 void tick(void);
allanalpha 0:ff5187998c84 35 int read(int ch) { return m_channels[ch].read(); }
allanalpha 0:ff5187998c84 36
allanalpha 0:ff5187998c84 37 protected:
allanalpha 0:ff5187998c84 38 Accelerometer1D m_channels[2];
allanalpha 0:ff5187998c84 39 };
allanalpha 0:ff5187998c84 40
allanalpha 0:ff5187998c84 41
allanalpha 0:ff5187998c84 42 class Accelerometer3D
allanalpha 0:ff5187998c84 43 {
allanalpha 0:ff5187998c84 44 public:
allanalpha 0:ff5187998c84 45 Accelerometer3D(PinName ch0, PinName ch1, PinName ch2, int tau, int offset=0xffff>>1);
allanalpha 0:ff5187998c84 46 void tick(void);
allanalpha 0:ff5187998c84 47 int read(int ch) { return m_channels[ch].read(); }
allanalpha 0:ff5187998c84 48
allanalpha 0:ff5187998c84 49 protected:
allanalpha 0:ff5187998c84 50 Accelerometer1D m_channels[3];
allanalpha 0:ff5187998c84 51 };
allanalpha 0:ff5187998c84 52
allanalpha 0:ff5187998c84 53
allanalpha 0:ff5187998c84 54 #endif // __ACCELEROMETER_H__