Yeongsoo Kim / Mbed 2 deprecated Mecha_Speed_control

Dependencies:   mbed

Revision:
0:c88a81d07287
Child:
1:d7a26e14bc4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Sensor/HallSensor.cpp	Wed Nov 06 01:17:46 2019 +0000
@@ -0,0 +1,37 @@
+#include "HallSensor.h"
+#define RPM 23400.0
+#define MIN 60.0
+#define SEC_PERIOD (1.0 / (RPM*2 / MIN ))
+
+HallSensor::HallSensor (PinName a) : m_hallSensor (a,PullUp)
+{
+    float fDummy_sec = 1000.0;
+    m_hallSensor.rise (callback (this, &HallSensor::risingCallback));
+    m_period_sec = fDummy_sec;
+    m_timer_sec.start ();
+}
+
+float HallSensor::getSpeed_rps ()
+{
+    float fSpeed_rps;
+    
+    if (m_timer_sec.read () > 0.1 || m_period_sec > 0.1) {
+        fSpeed_rps = 0.0f;
+    } else {
+        fSpeed_rps = 2.0f*PI/m_period_sec;
+    }
+    return fSpeed_rps;
+}
+
+void HallSensor::risingCallback()
+{
+    if(m_timer_sec.read() > SEC_PERIOD) {
+        m_period_sec = m_timer_sec.read();
+        m_timer_sec.reset();
+    }
+}
+
+int HallSensor::getPinState ()
+{
+    return m_hallSensor;
+}
\ No newline at end of file