..

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 Touchpad driver.
allanalpha 0:ff5187998c84 3
allanalpha 0:ff5187998c84 4 CPV, 3/9/2009
allanalpha 0:ff5187998c84 5 */
allanalpha 0:ff5187998c84 6
allanalpha 0:ff5187998c84 7 #ifndef __TOUCHPAD_H__
allanalpha 0:ff5187998c84 8 #define __TOUCHPAD_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 TouchpadChannel
allanalpha 0:ff5187998c84 16 {
allanalpha 0:ff5187998c84 17 public:
allanalpha 0:ff5187998c84 18 void initialise(int min, int quantise_step);
allanalpha 0:ff5187998c84 19 void tick(int v) { m_filter.tick(v); }
allanalpha 0:ff5187998c84 20 int quantise(void);
allanalpha 0:ff5187998c84 21 int operator()(void) { return m_quantised; }
allanalpha 0:ff5187998c84 22 int get_raw(void) { return m_filter(); }
allanalpha 0:ff5187998c84 23
allanalpha 0:ff5187998c84 24 protected:
allanalpha 0:ff5187998c84 25 FilterBoxI m_filter;
allanalpha 0:ff5187998c84 26 int m_min;
allanalpha 0:ff5187998c84 27 int m_quantise_step;
allanalpha 0:ff5187998c84 28 int m_quantised;
allanalpha 0:ff5187998c84 29 };
allanalpha 0:ff5187998c84 30
allanalpha 0:ff5187998c84 31
allanalpha 0:ff5187998c84 32 class Touchpad
allanalpha 0:ff5187998c84 33 {
allanalpha 0:ff5187998c84 34 public:
allanalpha 0:ff5187998c84 35 Touchpad(PinName x0, PinName x1, PinName y0, PinName y1);
allanalpha 0:ff5187998c84 36
allanalpha 0:ff5187998c84 37 void tick(void);
allanalpha 0:ff5187998c84 38
allanalpha 0:ff5187998c84 39 int get_raw_x(void) { return m_ch_x.get_raw(); }
allanalpha 0:ff5187998c84 40 int get_raw_y(void) { return m_ch_y.get_raw(); }
allanalpha 0:ff5187998c84 41
allanalpha 0:ff5187998c84 42 int hotspot(void) { return (m_ch_x.quantise()>=0 && m_ch_y.quantise()>=0); }
allanalpha 0:ff5187998c84 43 int get_hotspot_x(void) { return m_ch_x(); }
allanalpha 0:ff5187998c84 44 int get_hotspot_y(void) { return m_ch_y(); }
allanalpha 0:ff5187998c84 45
allanalpha 0:ff5187998c84 46 protected:
allanalpha 0:ff5187998c84 47 TouchpadChannel m_ch_x;
allanalpha 0:ff5187998c84 48 TouchpadChannel m_ch_y;
allanalpha 0:ff5187998c84 49
allanalpha 0:ff5187998c84 50 PinName m_x0;
allanalpha 0:ff5187998c84 51 PinName m_x1;
allanalpha 0:ff5187998c84 52 PinName m_y0;
allanalpha 0:ff5187998c84 53 PinName m_y1;
allanalpha 0:ff5187998c84 54
allanalpha 0:ff5187998c84 55 int read(PinName drive_hi, PinName drive_lo, PinName read_hi, PinName read_lo);
allanalpha 0:ff5187998c84 56 int read_x(void) { return read(m_x1,m_x0,m_y1,m_y0); }
allanalpha 0:ff5187998c84 57 int read_y(void) { return read(m_y1,m_y0,m_x1,m_x0); }
allanalpha 0:ff5187998c84 58 };
allanalpha 0:ff5187998c84 59
allanalpha 0:ff5187998c84 60
allanalpha 0:ff5187998c84 61 #endif // __TOUCHPAD_H__