Quick and dirty workaround

pull/67/head^2
Alex Voinea 2021-09-20 16:36:44 +02:00
parent 7fe6f6c9eb
commit d1fd815e0c
2 changed files with 17 additions and 8 deletions

View File

@ -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;
} }

View File

@ -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();