]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M4F_CEC1302_Keil_GCC/peripheral_library/htimer/htimer_api.c
Rename CORTEX_M4F_CEC1302_Keil to CORTEX_M4F_CEC1302_Keil_GCC as it now contains...
[freertos] / FreeRTOS / Demo / CORTEX_M4F_CEC1302_Keil_GCC / peripheral_library / htimer / htimer_api.c
1 /*****************************************************************************\r
2 * © 2015 Microchip Technology Inc. and its subsidiaries.\r
3 * You may use this software and any derivatives exclusively with\r
4 * Microchip products.\r
5 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".\r
6 * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,\r
7 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,\r
8 * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP\r
9 * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.\r
10 * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,\r
11 * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND\r
12 * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS\r
13 * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.\r
14 * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL\r
15 * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF\r
16 * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.\r
17 * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE\r
18 * OF THESE TERMS.\r
19 ******************************************************************************\r
20 \r
21 Version Control Information (Perforce)\r
22 ******************************************************************************\r
23 $Revision: #1 $ \r
24 $DateTime: 2015/12/17 01:09:00 $ \r
25 $Author: snakka $\r
26 Last Change: Updated for peripheral functions prefix p_\r
27 ******************************************************************************/\r
28 /** @file btimer_perphl.c\r
29 * \brief Hibernation Timer API Source file\r
30 * \author jvasanth\r
31\r
32 * This file implements Hibernation Timer APIs   \r
33 ******************************************************************************/\r
34 \r
35 /** @defgroup Hibernation_Timer\r
36  *  @{\r
37  */\r
38 \r
39 #include "common_lib.h"\r
40 #include "htimer.h"\r
41 \r
42 #ifdef PLIB_HTIMER_CHECK_ID\r
43 \r
44 /** Local helper that checks if logical Timer ID is valid.  \r
45  * @param htimer_id Hibernation Timer ID \r
46  * @return uint8_t Non-zero(VALID), 0(Invalid)\r
47  */\r
48 static uint8_t htmr_valid(uint8_t htimer_id)\r
49 {\r
50     if ( htimer_id < (PID_HTIMER_MAX ) ) {\r
51         return 1;\r
52     }\r
53     return 0;\r
54 }\r
55 \r
56 #else\r
57 \r
58 \r
59 /** This version of tmr_valid skips checking always returning 1.  \r
60  *  Compiler may optimize it out.\r
61  * @param htimer_id Hibernation Timer ID\r
62  * @return uint8_t 1(VALID) \r
63  */\r
64 static uint8_t htmr_valid(uint8_t htimer_id) { return 1; }\r
65 \r
66 #endif\r
67 \r
68 \r
69 /** Enables hibernation timer\r
70  * @param htimer_id Hibernation Timer ID\r
71  * @param preload_value - 16-bit preload value \r
72  * @param resolution_mode 0 - resolution of 30.5us per LSB, \r
73  *        1 - resolution of 0.125s per LSB\r
74  */\r
75 void htimer_enable(uint8_t htimer_id, uint16_t preload_value, uint8_t resolution_mode)\r
76 {\r
77     if (htmr_valid(htimer_id)) \r
78     {\r
79         p_htimer_preload_set(htimer_id, preload_value);\r
80         \r
81         p_htimer_resolution_set(htimer_id, resolution_mode);\r
82     }        \r
83 }\r
84 \r
85 /** Disables the hibernation timer by programming the prelaod value as 0\r
86  * @param htimer_id Hibernation Timer ID \r
87  */\r
88 void htimer_disable(uint8_t htimer_id)\r
89 {    \r
90     if (htmr_valid(htimer_id)) \r
91     {\r
92         p_htimer_preload_set(htimer_id, 0);\r
93     }        \r
94 }\r
95 \r
96 /** Reloads new preload value for the hibernation timer\r
97  * @param htimer_id Hibernation Timer ID\r
98  * @param reload_value  - 16-bit preload value \r
99  */\r
100 void htimer_reload(uint8_t htimer_id, uint16_t reload_value)\r
101 {    \r
102     if ( htmr_valid(htimer_id)) \r
103     {\r
104         p_htimer_preload_set(htimer_id, reload_value);\r
105     }        \r
106 }\r
107 \r
108 /* end htimer_api.c */\r
109 \r
110 /**   @} //APIs Hibernation_Timer\r
111  */\r
112 \r