User Interface Test on mbed RTOS

Dependencies:   N5110 RotaryEncoder mbed-rtos mbed PinDetect

Committer:
ryood
Date:
Fri May 27 00:23:46 2016 +0000
Revision:
4:d9a72e07749f
???????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 4:d9a72e07749f 1 #ifndef _AVERAGE_ANALOG_H_
ryood 4:d9a72e07749f 2 #define _AVERAGE_ANALOG_H_
ryood 4:d9a72e07749f 3
ryood 4:d9a72e07749f 4 #include "mbed.h"
ryood 4:d9a72e07749f 5
ryood 4:d9a72e07749f 6 class AverageAnalogIn {
ryood 4:d9a72e07749f 7 public:
ryood 4:d9a72e07749f 8 AverageAnalogIn(PinName _pin, int _bufferSize=8) : m_AnalogIn(_pin), bufferSize(_bufferSize), index(0) {
ryood 4:d9a72e07749f 9 buffer = new unsigned short[bufferSize];
ryood 4:d9a72e07749f 10 }
ryood 4:d9a72e07749f 11
ryood 4:d9a72e07749f 12 ~AverageAnalogIn() {
ryood 4:d9a72e07749f 13 delete buffer;
ryood 4:d9a72e07749f 14 }
ryood 4:d9a72e07749f 15
ryood 4:d9a72e07749f 16 unsigned short read_u16() {
ryood 4:d9a72e07749f 17 buffer[index] = m_AnalogIn.read_u16();
ryood 4:d9a72e07749f 18 index++;
ryood 4:d9a72e07749f 19 if (index == bufferSize) {
ryood 4:d9a72e07749f 20 index = 0;
ryood 4:d9a72e07749f 21 }
ryood 4:d9a72e07749f 22 unsigned int sum = 0;
ryood 4:d9a72e07749f 23 for (int i = 0; i < bufferSize; i++) {
ryood 4:d9a72e07749f 24 sum += buffer[i];
ryood 4:d9a72e07749f 25 }
ryood 4:d9a72e07749f 26 return sum / bufferSize;
ryood 4:d9a72e07749f 27 }
ryood 4:d9a72e07749f 28
ryood 4:d9a72e07749f 29 private:
ryood 4:d9a72e07749f 30 AnalogIn m_AnalogIn;
ryood 4:d9a72e07749f 31 int bufferSize;
ryood 4:d9a72e07749f 32 int index;
ryood 4:d9a72e07749f 33 unsigned short *buffer;
ryood 4:d9a72e07749f 34 };
ryood 4:d9a72e07749f 35
ryood 4:d9a72e07749f 36 #endif //_AVERAGE_ANALOG_H_