mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-26 20:56:37 +00:00
Add an external watchdog module
This commit is contained in:
@@ -13,6 +13,7 @@ VolatileRTCClock fallback_clock;
|
||||
AutoDiscoverRTCClock rtc_clock(fallback_clock);
|
||||
MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1);
|
||||
SolarSensorManager sensors = SolarSensorManager(nmea);
|
||||
SolarExWatchdog ex_watchdog;
|
||||
|
||||
#ifdef DISPLAY_CLASS
|
||||
DISPLAY_CLASS display;
|
||||
@@ -121,3 +122,30 @@ bool SolarSensorManager::setSettingValue(const char* name, const char* value) {
|
||||
}
|
||||
return false; // not supported
|
||||
}
|
||||
|
||||
bool SolarExWatchdog::begin() {
|
||||
next_feed_watchdog = 0;
|
||||
pinMode(EX_WATCHDOG_WAKE_PIN, INPUT);
|
||||
pinMode(EX_WATCHDOG_DONE_PIN, OUTPUT);
|
||||
delay(1);
|
||||
digitalWrite(EX_WATCHDOG_DONE_PIN, LOW);
|
||||
delay(1);
|
||||
feed();
|
||||
return true;
|
||||
}
|
||||
void SolarExWatchdog::loop() {
|
||||
if (millis() > next_feed_watchdog) {
|
||||
feed();
|
||||
next_feed_watchdog = millis() + EX_WATCHDOG_TIMEOUT_MS;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long SolarExWatchdog::getIntervalMs() const {
|
||||
return next_feed_watchdog - millis();
|
||||
}
|
||||
|
||||
void SolarExWatchdog::feed() {
|
||||
digitalWrite(EX_WATCHDOG_DONE_PIN, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(EX_WATCHDOG_DONE_PIN, LOW);
|
||||
}
|
||||
Reference in New Issue
Block a user