Quick and dirty workaround
parent
7fe6f6c9eb
commit
d1fd815e0c
|
|
@ -23,15 +23,24 @@ struct configuration {
|
||||||
uint16_t reload;
|
uint16_t reload;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr configuration compute(float timeout) {
|
static constexpr configuration compute(uint16_t timeout) {
|
||||||
|
// uint8_t prescalerBits = 0;
|
||||||
|
// uint32_t ticks = timeout * F_WDT / (basePrescaler * (1 << prescalerBits));
|
||||||
|
// while ((ticks >= (1 << reloadBits)) && (prescalerBits < maxPrescaler)) {
|
||||||
|
// prescalerBits++;
|
||||||
|
// ticks >>= 1;
|
||||||
|
// }
|
||||||
|
// if ((prescalerBits == 0) && (ticks == 0))
|
||||||
|
// ticks = 1; //1 tick is minimum
|
||||||
|
// configuration config = { prescalerBits, static_cast<uint16_t>(ticks - 1) };
|
||||||
|
// return config;
|
||||||
uint8_t prescalerBits = 0;
|
uint8_t prescalerBits = 0;
|
||||||
uint32_t ticks = timeout * F_WDT / (basePrescaler * (1 << prescalerBits));
|
uint32_t ticks = 1;
|
||||||
while ((ticks >= (1 << reloadBits)) && (prescalerBits < maxPrescaler)) {
|
switch (timeout) {
|
||||||
prescalerBits++;
|
case 8000:
|
||||||
ticks >>= 1;
|
prescalerBits = 9;
|
||||||
}
|
}
|
||||||
if ((prescalerBits == 0) && (ticks == 0))
|
|
||||||
ticks = 1; //1 tick is minimum
|
|
||||||
configuration config = { prescalerBits, static_cast<uint16_t>(ticks - 1) };
|
configuration config = { prescalerBits, static_cast<uint16_t>(ticks - 1) };
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ void setup() {
|
||||||
|
|
||||||
mt::timebase.Init();
|
mt::timebase.Init();
|
||||||
|
|
||||||
watchdog::Enable(watchdog::configuration::compute(8)); //set 8s timeout
|
watchdog::Enable(watchdog::configuration::compute(8000)); //set 8s timeout
|
||||||
|
|
||||||
mg::globals.Init();
|
mg::globals.Init();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue