]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M4F_CEC1302_Keil/peripheral_library/htimer/htimer_perphl.c
Kernel source code:
[freertos] / FreeRTOS / Demo / CORTEX_M4F_CEC1302_Keil / peripheral_library / htimer / htimer_perphl.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 Peripheral Source file\r
30 * \author jvasanth\r
31\r
32 * This file implements Hibernation Timer Peripheral functions  \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 /** Hibernation Timer Instance base addresses */\r
43 static HTM_Type * const htmr_inst[HTIMER_MAX_INSTANCE] = {\r
44     CEC1302_HTM    \r
45 };\r
46 \r
47 /** Sets hibernation timer preload value\r
48  * @param htimer_id Hibernation Timer ID\r
49  * @param preload_value - 16-bit preload value \r
50  * @note Setting the preload with a non-zero value starts \r
51  * the hibernation timer to down count. Setting the preload \r
52  * to 0 disables the hibernation counter\r
53  */\r
54 void p_htimer_preload_set(uint8_t htimer_id, uint16_t preload_value)\r
55 {\r
56     htmr_inst[htimer_id]->PRELOAD = preload_value;                                      \r
57 }\r
58 \r
59 /** Sets hibernation timer resolution\r
60  * @param htimer_id Hibernation Timer ID\r
61  * @param resolution_mode 0 - resolution of 30.5us per LSB, \r
62  *        1 - resolution of 0.125s per LSB\r
63  */\r
64 void p_htimer_resolution_set(uint8_t htimer_id, uint8_t resolution_mode)\r
65 {\r
66     htmr_inst[htimer_id]->CONTROL = resolution_mode;    \r
67 }\r
68 \r
69 /** Returns the Hibernation Timer current count value\r
70  * @param htimer_id Hibernation Timer ID\r
71  * @return 16-bit count value \r
72  */\r
73 uint16_t p_htimer_count_get(uint8_t htimer_id)\r
74 {\r
75     uint16_t htimer_count;\r
76     \r
77     htimer_count = htmr_inst[htimer_id]->COUNT;\r
78     \r
79     return htimer_count;\r
80 }\r
81 \r
82 /*_RB_ Added by RB. */\r
83 uint16_t p_htimer_preload_get(uint8_t htimer_id)\r
84 {\r
85     return htmr_inst[htimer_id]->PRELOAD;\r
86 }\r
87 \r
88 \r
89 /* end htimer_perphl.c */\r
90 \r
91 /**   @} //Peripheral Hibernation_Timer\r
92  */\r
93 \r