mbed with Nintendo DS touchpad, accelerometer & touchpad.

Dependencies:   mbed

Committer:
Clemo
Date:
Wed May 05 12:10:15 2010 +0000
Revision:
0:0a76ae27065b

        

Who changed what in which revision?

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