summaryrefslogtreecommitdiff
path: root/src/drivers/Watchdog.cpp
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-06-07 20:31:13 +0200
committerJF <jf@codingfield.com>2020-06-07 20:31:13 +0200
commit9115c49bba366698c79b3fc07a991bee1c0cd4ca (patch)
treee5ddf17868a9be5636b025a235a16a2961f940df /src/drivers/Watchdog.cpp
parent421af9625b56039e14084aacf6b987c34cf35ebd (diff)
Fix reset reason (it returns the actual reset reason instead of hard coded 'hard reset' value).
Diffstat (limited to 'src/drivers/Watchdog.cpp')
-rw-r--r--src/drivers/Watchdog.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/drivers/Watchdog.cpp b/src/drivers/Watchdog.cpp
index 850fd2f1..11da1211 100644
--- a/src/drivers/Watchdog.cpp
+++ b/src/drivers/Watchdog.cpp
@@ -32,17 +32,17 @@ void Watchdog::Kick() {
}
Watchdog::ResetReasons Watchdog::ActualResetReason() const {
- uint32_t resetReason;
-// sd_power_reset_reason_get(&resetReason);
-// sd_power_reset_reason_clr(0xFFFFFFFF);
-// if(resetReason & 0x01u) return ResetReasons::ResetPin;
-// if((resetReason >> 1u) & 0x01u) return ResetReasons::Watchdog;
-// if((resetReason >> 2u) & 0x01u) return ResetReasons::SoftReset;
-// if((resetReason >> 3u) & 0x01u) return ResetReasons::CpuLockup;
-// if((resetReason >> 16u) & 0x01u) return ResetReasons::SystemOff;
-// if((resetReason >> 17u) & 0x01u) return ResetReasons::LpComp;
-// if((resetReason >> 18u) & 0x01u) return ResetReasons::DebugInterface;
-// if((resetReason >> 19u) & 0x01u) return ResetReasons::NFC;
+ uint32_t reason = NRF_POWER->RESETREAS;
+ NRF_POWER->RESETREAS = 0xffffffff;
+
+ if(reason & 0x01u) return ResetReasons::ResetPin;
+ if((reason >> 1u) & 0x01u) return ResetReasons::Watchdog;
+ if((reason >> 2u) & 0x01u) return ResetReasons::SoftReset;
+ if((reason >> 3u) & 0x01u) return ResetReasons::CpuLockup;
+ if((reason >> 16u) & 0x01u) return ResetReasons::SystemOff;
+ if((reason >> 17u) & 0x01u) return ResetReasons::LpComp;
+ if((reason) & 0x01u) return ResetReasons::DebugInterface;
+ if((reason >> 19u) & 0x01u) return ResetReasons::NFC;
return ResetReasons::HardReset;
}