X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fwdt.h;h=55b74264f535dc13d269c894c341197c208d45c2;hb=HEAD;hp=1db1053841b438c81e3490e74d43bc16caf8983b;hpb=efbdba7e2814415234ef47bd10ff888559ea90af;p=bertos.git diff --git a/drv/wdt.h b/drv/wdt.h deleted file mode 100644 index 1db10538..00000000 --- a/drv/wdt.h +++ /dev/null @@ -1,166 +0,0 @@ -/** - * \file - * - * - * \version $Id$ - * - * \author Bernardo Innocenti - * - * \brief Watchdog interface - */ - -#ifndef DRV_WDT_H -#define DRV_WDT_H - -#include -#include // INLINE -#include - -/* Configury sanity check */ -#if !defined(CONFIG_WATCHDOG) || (CONFIG_WATCHDOG != 0 && CONFIG_WATCHDOG != 1) - #error CONFIG_WATCHDOG must be defined to either 0 or 1 -#endif - -#if CONFIG_WATCHDOG - #include - #include - - #if OS_QT - #if _QT < 4 - #include - #else - #include - #endif - #elif OS_POSIX - #include - #elif CPU_AVR - #include - #include // BV() - #if CPU_AVR_ATMEGA1281 // Name is different in atmega1281 - #define WDTCR WDTCSR - #endif - #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS) - #include /* taskYIELD() */ - #else - #error unknown CPU - #endif -#endif /* CONFIG_WATCHDOG */ - -/** - * Reset the watchdog timer. - */ -INLINE void wdt_reset(void) -{ -#if CONFIG_WATCHDOG - #if OS_QT - // Let Qt handle events - ASSERT(qApp); - qApp->processEvents(); - #elif OS_POSIX - static struct timeval tv = { 0, 0 }; - select(0, NULL, NULL, NULL, &tv); - #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS) - vTaskDelay(1); - #elif CPU_AVR - __asm__ __volatile__ ("wdr"); - #else - #error unknown CPU - #endif -#endif /* CONFIG_WATCHDOG */ -} - -/** - * Set watchdog timer timeout. - * - * \param timeout 0: 16.3ms, 7: 2.1s - */ -INLINE void wdt_init(uint8_t timeout) -{ -#if CONFIG_WATCHDOG - #if OS_QT - // Create a dummy QApplication object - if (!qApp) - { - int argc; - new QApplication(argc, (char **)NULL); - } - (void)timeout; - #elif OS_POSIX - (void)timeout; // NOP - #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS) - /* nop */ - #elif CPU_AVR - WDTCR |= BV(WDCE) | BV(WDE); - WDTCR = timeout; - #else - #error unknown CPU - #endif -#else - (void)timeout; -#endif /* CONFIG_WATCHDOG */ -} - -INLINE void wdt_start(void) -{ -#if CONFIG_WATCHDOG - #if OS_QT - // NOP - #elif OS_POSIX - // NOP - #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS) - /* nop */ - #elif CPU_AVR - WDTCR |= BV(WDE); - #else - #error unknown CPU - #endif -#endif /* CONFIG_WATCHDOG */ -} - -INLINE void wdt_stop(void) -{ -#if CONFIG_WATCHDOG - #if OS_QT - // NOP - #elif OS_POSIX - // NOP - #elif defined(ARCH_FREERTOS) && (ARCH & ARCH_FREERTOS) - /* nop */ - #elif CPU_AVR - WDTCR |= BV(WDCE) | BV(WDE); - WDTCR &= ~BV(WDE); - #else - #error unknown CPU - #endif -#endif /* CONFIG_WATCHDOG */ -} - -#endif /* DRV_WDT_H */