/* mbed Microcontroller Library * Copyright (c) 2006-2013 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MBED_WATCHDOG_API_H #define MBED_WATCHDOG_API_H #include "device.h" #ifdef __cplusplus extern "C" { #endif typedef void (*wdt_irq_handler)(uint32_t id); /** Initial the watch dog time setting * * This function will initial and enable the watchdog timer with a given timeout value. * When the watchdog timer timeout event is triggered, the system will be reset. User also can * register a callback function to handle the watchdog timer timeout event. */ void watchdog_init(uint32_t timeout_ms); /** Start the watchdog counting * * This function will active the watchdog timer down counting. When the watchdog timer count down * to 0, a callback function will be called or the system will be reset. */ void watchdog_start(void); /** Stop the watchdog counting * * This function will stop the watchdog timer down counting. If a user application aware a * procedure may takes too long and cause the watchdog timer timeout, the application use this * function to stop the watchdog timer to prevent the watchdog timer timeout. */ void watchdog_stop(void); /** Refresh the watchdog counting * * This function will reload the watchdog timer counting value. Usually a application do the watchdog * timer reflash in the main loop to prevent the watchdog timer timeout. */ void watchdog_refresh(void); #ifdef __cplusplus } #endif #endif