User Interface Test on mbed RTOS

Dependencies:   N5110 RotaryEncoder mbed-rtos mbed PinDetect

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