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