]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/MB91460_Softune/SRC/watchdog/watchdog.c
Update the demo directory to use the version 8 type naming conventions.
[freertos] / FreeRTOS / Demo / MB91460_Softune / SRC / watchdog / watchdog.c
1 /* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */\r
2 /* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */\r
3 /* ELIGIBILITY FOR ANY PURPOSES.                                                                                         */\r
4 /*                               (C) Fujitsu Microelectronics Europe GmbH                                 */\r
5 /*------------------------------------------------------------------------\r
6   watchdog.c\r
7   - This file contains the function deefinition for hardware watchdog.\r
8 -------------------------------------------------------------------------*/\r
9 \r
10 #include "mb91467d.h"\r
11 #include "FreeRTOS.h"\r
12 #include "task.h"\r
13 #include "watchdog.h"\r
14 \r
15 /*---------------------------------------------------------------------------\r
16  * Setup Watchdog\r
17  *---------------------------------------------------------------------------*/\r
18 #if WATCHDOG != WTC_NONE\r
19 void InitWatchdog(void)\r
20 {\r
21         HWWDE_ED = WTC_PER_2_16;        /* Set the watchdog period as 655.36 ms */\r
22 }\r
23 #endif\r
24 \r
25 /*---------------------------------------------------------------------------\r
26  * The below task clears the watchdog and blocks itself for WTC_CLR_PER ticks.\r
27  *---------------------------------------------------------------------------*/\r
28 #if WATCHDOG == WTC_IN_TASK\r
29 static void prvWatchdogTask     ( void *pvParameters )\r
30 {\r
31         const TickType_t xFrequency = WTC_CLR_PER;\r
32         TickType_t xLastWakeTime;\r
33 \r
34         /* Get currrent tick count */\r
35         xLastWakeTime = xTaskGetTickCount();\r
36 \r
37         for( ; ; )\r
38         {\r
39                 Kick_Watchdog();\r
40 \r
41                 /* Block the task for WTC_CLR_PER ticks (300 ms) at watchdog overflow\r
42                 period of WTC_PER_2_16 CLKRC cycles (655.36 ms) */\r
43                 vTaskDelayUntil( &xLastWakeTime, xFrequency );\r
44         }\r
45 }\r
46 #endif\r
47 \r
48 /*---------------------------------------------------------------------------\r
49  * The below function creates hardware watchdog task.\r
50  *---------------------------------------------------------------------------*/\r
51 #if WATCHDOG == WTC_IN_TASK\r
52 void vStartWatchdogTask( unsigned short uxPriority )\r
53 {\r
54         xTaskCreate( prvWatchdogTask , "KickWTC",   portMINIMAL_STACK_SIZE, ( void * ) NULL, uxPriority, ( TaskHandle_t * ) NULL );\r
55 }\r
56 #endif\r