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
19 ******************************************************************************
\r
21 Version Control Information (Perforce)
\r
22 ******************************************************************************
\r
24 $DateTime: 2015/12/17 01:09:00 $
\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
32 * This file implements Hibernation Timer APIs
\r
33 ******************************************************************************/
\r
35 /** @defgroup Hibernation_Timer
\r
39 #include "common_lib.h"
\r
42 #ifdef PLIB_HTIMER_CHECK_ID
\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
48 static uint8_t htmr_valid(uint8_t htimer_id)
\r
50 if ( htimer_id < (PID_HTIMER_MAX ) ) {
\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
64 static uint8_t htmr_valid(uint8_t htimer_id) { return 1; }
\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
75 void htimer_enable(uint8_t htimer_id, uint16_t preload_value, uint8_t resolution_mode)
\r
77 if (htmr_valid(htimer_id))
\r
79 p_htimer_preload_set(htimer_id, preload_value);
\r
81 p_htimer_resolution_set(htimer_id, resolution_mode);
\r
85 /** Disables the hibernation timer by programming the prelaod value as 0
\r
86 * @param htimer_id Hibernation Timer ID
\r
88 void htimer_disable(uint8_t htimer_id)
\r
90 if (htmr_valid(htimer_id))
\r
92 p_htimer_preload_set(htimer_id, 0);
\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
100 void htimer_reload(uint8_t htimer_id, uint16_t reload_value)
\r
102 if ( htmr_valid(htimer_id))
\r
104 p_htimer_preload_set(htimer_id, reload_value);
\r
108 /* end htimer_api.c */
\r
110 /** @} //APIs Hibernation_Timer
\r