User Interface Test on mbed RTOS
Dependencies: N5110 RotaryEncoder mbed-rtos mbed PinDetect
Diff: AverageAnalogIn.h
- Revision:
- 4:d9a72e07749f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AverageAnalogIn.h Fri May 27 00:23:46 2016 +0000 @@ -0,0 +1,36 @@ +#ifndef _AVERAGE_ANALOG_H_ +#define _AVERAGE_ANALOG_H_ + +#include "mbed.h" + +class AverageAnalogIn { +public: + AverageAnalogIn(PinName _pin, int _bufferSize=8) : m_AnalogIn(_pin), bufferSize(_bufferSize), index(0) { + buffer = new unsigned short[bufferSize]; + } + + ~AverageAnalogIn() { + delete buffer; + } + + unsigned short read_u16() { + buffer[index] = m_AnalogIn.read_u16(); + index++; + if (index == bufferSize) { + index = 0; + } + unsigned int sum = 0; + for (int i = 0; i < bufferSize; i++) { + sum += buffer[i]; + } + return sum / bufferSize; + } + +private: + AnalogIn m_AnalogIn; + int bufferSize; + int index; + unsigned short *buffer; +}; + +#endif //_AVERAGE_ANALOG_H_ \ No newline at end of file