Always use the I2C watchdog for the left half. Remove I2C_WATCHDOG and relevant preprocessor stuff.
This commit is contained in:
@@ -3,11 +3,6 @@
|
|||||||
|
|
||||||
// Macros:
|
// Macros:
|
||||||
|
|
||||||
#define I2C_WATCHDOG_VALUE_REINIT 1
|
|
||||||
#define I2C_WATCHDOG_VALUE_REBOOT 2
|
|
||||||
|
|
||||||
// #define DEBUG_OVER_SPI
|
// #define DEBUG_OVER_SPI
|
||||||
#define I2C_WATCHDOG I2C_WATCHDOG_VALUE_REINIT
|
|
||||||
// #define I2C_WATCHDOG I2C_WATCHDOG_VALUE_REBOOT
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
* See https://community.nxp.com/thread/457893
|
* See https://community.nxp.com/thread/457893
|
||||||
* Therefore the hardware watchdog timer cannot be used without an extra way to enter bootloader or application mode.
|
* Therefore the hardware watchdog timer cannot be used without an extra way to enter bootloader or application mode.
|
||||||
*/
|
*/
|
||||||
#ifdef I2C_WATCHDOG
|
|
||||||
static uint32_t prevWatchdogCounter = 0;
|
static uint32_t prevWatchdogCounter = 0;
|
||||||
static uint32_t I2cWatchdog_RecoveryCounter; /* counter for how many times we had to recover and restart */
|
static uint32_t I2cWatchdog_RecoveryCounter; /* counter for how many times we had to recover and restart */
|
||||||
|
|
||||||
@@ -27,16 +26,10 @@ void RunWatchdog(void)
|
|||||||
if (I2cWatchdog_WatchCounter>10) { /* do not check within the first 1000 ms, as I2C might not be running yet */
|
if (I2cWatchdog_WatchCounter>10) { /* do not check within the first 1000 ms, as I2C might not be running yet */
|
||||||
if (I2C_Watchdog == prevWatchdogCounter) { // Restart I2C if there hasn't been any interrupt during 100 ms. I2C_Watchdog gets incremented for every I2C transaction
|
if (I2C_Watchdog == prevWatchdogCounter) { // Restart I2C if there hasn't been any interrupt during 100 ms. I2C_Watchdog gets incremented for every I2C transaction
|
||||||
I2cWatchdog_RecoveryCounter++;
|
I2cWatchdog_RecoveryCounter++;
|
||||||
#if I2C_WATCHDOG == I2C_WATCHDOG_VALUE_REBOOT
|
|
||||||
NVIC_SystemReset();
|
|
||||||
#endif
|
|
||||||
#if I2C_WATCHDOG == I2C_WATCHDOG_VALUE_REINIT
|
|
||||||
I2C_SlaveDeinit(I2C_BUS_BASEADDR);
|
I2C_SlaveDeinit(I2C_BUS_BASEADDR);
|
||||||
initI2c();
|
initI2c();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
prevWatchdogCounter = I2C_Watchdog; /* remember previous counter */
|
prevWatchdogCounter = I2C_Watchdog; /* remember previous counter */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|||||||
Reference in New Issue
Block a user