From fa4a3abf84c05ec4c3cc6edf7549d022635330f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Sat, 13 Jan 2018 03:14:42 +0100 Subject: [PATCH] Extract ReinitI2cMainBus() --- right/src/i2c_watchdog.c | 4 +--- right/src/init_peripherals.c | 7 +++++++ right/src/init_peripherals.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/right/src/i2c_watchdog.c b/right/src/i2c_watchdog.c index 85ad54c..9c4175e 100644 --- a/right/src/i2c_watchdog.c +++ b/right/src/i2c_watchdog.c @@ -22,9 +22,7 @@ void PIT_I2C_WATCHDOG_HANDLER(void) if (I2C_Watchdog == prevWatchdogCounter) { // Restart I2C if there haven't been any interrupts recently I2cWatchdog_RecoveryCounter++; - I2C_MasterDeinit(I2C_MAIN_BUS_BASEADDR); - InitI2cMainBus(); - InitSlaveScheduler(); + ReinitI2cMainBus(); } prevWatchdogCounter = I2C_Watchdog; diff --git a/right/src/init_peripherals.c b/right/src/init_peripherals.c index 7f6c752..3cdd943 100644 --- a/right/src/init_peripherals.c +++ b/right/src/init_peripherals.c @@ -83,6 +83,13 @@ void InitI2cMainBus(void) I2C_MasterInit(I2C_MAIN_BUS_BASEADDR, &masterConfig, sourceClock); } +void ReinitI2cMainBus(void) +{ + I2C_MasterDeinit(I2C_MAIN_BUS_BASEADDR); + InitI2cMainBus(); + InitSlaveScheduler(); +} + void initI2cEepromBus(void) { port_pin_config_t pinConfig = { diff --git a/right/src/init_peripherals.h b/right/src/init_peripherals.h index 35fa094..1ae62d7 100644 --- a/right/src/init_peripherals.h +++ b/right/src/init_peripherals.h @@ -9,5 +9,6 @@ void InitPeripherals(void); void InitI2cMainBus(void); + void ReinitI2cMainBus(void); #endif