Explorar o código

Align stop pin behavior

- Make stop pin pure input without pullup
- Inverse stop pin logic, HIGH level is active break
Alexey Edelev %!s(int64=4) %!d(string=hai) anos
pai
achega
e3e7e28b47
Modificáronse 1 ficheiros con 5 adicións e 5 borrados
  1. 5 5
      Arduino/eScooterControl/accelerationcontrol.cpp

+ 5 - 5
Arduino/eScooterControl/accelerationcontrol.cpp

@@ -49,7 +49,7 @@ const PROGMEM unsigned short AccelerationLevelTable[11] = {
 };
 };
 
 
 
 
-AccelerationControl::AccelerationControl() : m_stopState(HIGH)
+AccelerationControl::AccelerationControl() : m_stopState(LOW)
   , m_acceleratorMinValue(0)
   , m_acceleratorMinValue(0)
   , m_accelerationLevel(0)
   , m_accelerationLevel(0)
   , m_expectedAcceleration(0)
   , m_expectedAcceleration(0)
@@ -59,7 +59,7 @@ AccelerationControl::AccelerationControl() : m_stopState(HIGH)
 {
 {
   Wire.begin();
   Wire.begin();
   pinMode(AcceleratorSensorPin, INPUT);
   pinMode(AcceleratorSensorPin, INPUT);
-  pinMode(StopSensorPin, INPUT_PULLUP);
+  pinMode(StopSensorPin, INPUT);
   attachInterrupt(digitalPinToInterrupt(StopSensorPin), []() {
   attachInterrupt(digitalPinToInterrupt(StopSensorPin), []() {
     AccelerationControl::instance()->stop();
     AccelerationControl::instance()->stop();
   }, CHANGE);
   }, CHANGE);
@@ -89,7 +89,7 @@ void AccelerationControl::setAccelerationLevel(const byte level)
 
 
 void AccelerationControl::dispatch()
 void AccelerationControl::dispatch()
 {  
 {  
-  if (m_stopState == HIGH) {
+  if (m_stopState == LOW) {
     setAccelerationLevel(readAcceleratorData());
     setAccelerationLevel(readAcceleratorData());
   }
   }
   updateAcceleration();
   updateAcceleration();
@@ -97,8 +97,8 @@ void AccelerationControl::dispatch()
 
 
 void AccelerationControl::stop() {
 void AccelerationControl::stop() {
   m_stopState = digitalRead(StopSensorPin);
   m_stopState = digitalRead(StopSensorPin);
-  Display::instance()->setStop(!m_stopState);
-  if (m_stopState == LOW) {
+  Display::instance()->setStop(m_stopState);
+  if (m_stopState == HIGH) {
     m_cruiseLevel = 0; //reset cruise when stop
     m_cruiseLevel = 0; //reset cruise when stop
     setAccelerationLevel(0);
     setAccelerationLevel(0);
   }
   }