This commit is contained in:
iranl
2024-02-17 22:56:02 +01:00
parent 8ba8bf36fc
commit 533296878f
8 changed files with 80 additions and 33 deletions

View File

@@ -74,6 +74,14 @@ void Gpio::init()
pinMode(entry.pin, INPUT_PULLUP);
attachInterrupt(entry.pin, isrDeactivateRtoCm, FALLING);
break;
case PinRole::InputDeactivateRTO:
pinMode(entry.pin, INPUT_PULLUP);
attachInterrupt(entry.pin, isrDeactivateRTO, FALLING);
break;
case PinRole::InputDeactivateCM:
pinMode(entry.pin, INPUT_PULLUP);
attachInterrupt(entry.pin, isrDeactivateCM, FALLING);
break;
case PinRole::OutputHighLocked:
case PinRole::OutputHighUnlocked:
case PinRole::OutputHighMotorBlocked:
@@ -199,6 +207,10 @@ String Gpio::getRoleDescription(PinRole role) const
return "Input: Activate CM";
case PinRole::InputDeactivateRtoCm:
return "Input: Deactivate RTO/CM";
case PinRole::InputDeactivateRTO:
return "Input: Deactivate RTO";
case PinRole::InputDeactivateCM:
return "Input: Deactivate CM";
case PinRole::OutputHighLocked:
return "Output: High when locked";
case PinRole::OutputHighUnlocked:
@@ -327,6 +339,20 @@ void Gpio::isrDeactivateRtoCm()
_debounceTs = millis() + _debounceTime;
}
void Gpio::isrDeactivateRTO()
{
if(millis() < _debounceTs) return;
_inst->notify(GpioAction::DeactivateRTO, -1);
_debounceTs = millis() + _debounceTime;
}
void Gpio::isrDeactivateCM()
{
if(millis() < _debounceTs) return;
_inst->notify(GpioAction::DeactivateCM, -1);
_debounceTs = millis() + _debounceTime;
}
void Gpio::setPinOutput(const uint8_t& pin, const uint8_t& state)
{
digitalWrite(pin, state);