lptmr_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
19 #ifndef LPTMR_DRIVER_H
20 #define LPTMR_DRIVER_H
21 
22 #include <stdint.h>
23 #include <stdbool.h>
24 #include "status.h"
25 #include "device_registers.h"
33 /*******************************************************************************
34  * Definitions
35  ******************************************************************************/
36 
40 typedef enum {
42 #if FEATURE_LPTMR_HAS_INPUT_ALT1_SELECTION
44 #endif
48 
52 typedef enum {
56 
60 typedef enum {
64 
68 typedef enum {
69  LPTMR_PRESCALE_2 = 0x00u,
86 
90 typedef enum {
96 
102 typedef enum
103 {
107 
113 typedef struct
114 {
115  /* General parameters */
116  bool dmaRequest;
118  bool freeRun;
120  /* Counter parameters */
124  uint32_t compareValue;
126  /* Pulse Counter specific parameters */
130 
131 /*******************************************************************************
132  * Function prototypes
133  ******************************************************************************/
139 #if defined(__cplusplus)
140 extern "C" {
141 #endif
142 
148 void LPTMR_DRV_InitConfigStruct(lptmr_config_t * const config);
149 
170 void LPTMR_DRV_Init(const uint32_t instance,
171  const lptmr_config_t * const config,
172  const bool startCounter);
173 
193 void LPTMR_DRV_SetConfig(const uint32_t instance,
194  const lptmr_config_t * const config);
195 
202 void LPTMR_DRV_GetConfig(const uint32_t instance,
203  lptmr_config_t * const config);
204 
210 void LPTMR_DRV_Deinit(const uint32_t instance);
211 
222 status_t LPTMR_DRV_SetCompareValueByCount(const uint32_t instance,
223  const uint16_t compareValueByCount);
224 
231 void LPTMR_DRV_GetCompareValueByCount(const uint32_t instance,
232  uint16_t * const compareValueByCount);
233 
244 status_t LPTMR_DRV_SetCompareValueByUs(const uint32_t instance,
245  const uint32_t compareValueUs);
246 
253 void LPTMR_DRV_GetCompareValueByUs(const uint32_t instance,
254  uint32_t * const compareValueUs);
255 
262 bool LPTMR_DRV_GetCompareFlag(const uint32_t instance);
263 
269 void LPTMR_DRV_ClearCompareFlag(const uint32_t instance);
270 
279 bool LPTMR_DRV_IsRunning(const uint32_t instance);
280 
287 void LPTMR_DRV_SetInterrupt(const uint32_t instance,
288  const bool enableInterrupt);
289 
296 uint16_t LPTMR_DRV_GetCounterValueByCount(const uint32_t instance);
297 
303 void LPTMR_DRV_StartCounter(const uint32_t instance);
304 
310 void LPTMR_DRV_StopCounter(const uint32_t instance);
311 
319 void LPTMR_DRV_SetPinConfiguration(const uint32_t instance,
320  const lptmr_pinselect_t pinSelect,
321  const lptmr_pinpolarity_t pinPolarity);
322 
323 #if defined(__cplusplus)
324 }
325 #endif
326 
331 #endif /* LPTMR_DRIVER_H */
332 /*******************************************************************************
333  * EOF
334  ******************************************************************************/
void LPTMR_DRV_InitConfigStruct(lptmr_config_t *const config)
Initialize a configuration structure with default values.
lptmr_workmode_t workMode
Definition: lptmr_driver.h:119
void LPTMR_DRV_Init(const uint32_t instance, const lptmr_config_t *const config, const bool startCounter)
Initialize a LPTMR instance with values from an input configuration structure.
void LPTMR_DRV_SetInterrupt(const uint32_t instance, const bool enableInterrupt)
Enable/disable the LPTMR interrupt.
lptmr_pinpolarity_t pinPolarity
Definition: lptmr_driver.h:128
void LPTMR_DRV_StopCounter(const uint32_t instance)
Disable the LPTMR / Stop the counter.
lptmr_clocksource_t clockSelect
Definition: lptmr_driver.h:121
Defines the configuration structure for LPTMR.
Definition: lptmr_driver.h:113
void LPTMR_DRV_ClearCompareFlag(const uint32_t instance)
Clear the Compare Flag of a LPTMR instance.
lptmr_prescaler_t prescaler
Definition: lptmr_driver.h:122
lptmr_clocksource_t
Clock Source selection Implements : lptmr_clocksource_t_Class.
Definition: lptmr_driver.h:90
bool LPTMR_DRV_IsRunning(const uint32_t instance)
Get the run state of a LPTMR instance.
lptmr_workmode_t
Work Mode Implements : lptmr_workmode_t_Class.
Definition: lptmr_driver.h:60
lptmr_counter_units_t counterUnits
Definition: lptmr_driver.h:125
void LPTMR_DRV_GetCompareValueByUs(const uint32_t instance, uint32_t *const compareValueUs)
Get the compare value in microseconds, of a LPTMR instance.
lptmr_counter_units_t
Defines the LPTMR counter units available for configuring or reading the timer compare value...
Definition: lptmr_driver.h:102
lptmr_pinselect_t pinSelect
Definition: lptmr_driver.h:127
lptmr_prescaler_t
Prescaler Selection Implements : lptmr_prescaler_t_Class.
Definition: lptmr_driver.h:68
uint32_t compareValue
Definition: lptmr_driver.h:124
void LPTMR_DRV_GetCompareValueByCount(const uint32_t instance, uint16_t *const compareValueByCount)
Get the compare value in counter tick units, of a LPTMR instance.
lptmr_pinpolarity_t
Pulse Counter input polarity Implements : lptmr_pinpolarity_t_Class.
Definition: lptmr_driver.h:52
void LPTMR_DRV_Deinit(const uint32_t instance)
De-initialize a LPTMR instance.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
Definition: status.h:44
uint16_t LPTMR_DRV_GetCounterValueByCount(const uint32_t instance)
Get the current counter value in counter tick units.
void LPTMR_DRV_StartCounter(const uint32_t instance)
Enable the LPTMR / Start the counter.
void LPTMR_DRV_SetConfig(const uint32_t instance, const lptmr_config_t *const config)
Configure a LPTMR instance.
void LPTMR_DRV_GetConfig(const uint32_t instance, lptmr_config_t *const config)
Get the current configuration of a LPTMR instance.
lptmr_pinselect_t
Pulse Counter Input selection Implements : lptmr_pinselect_t_Class.
Definition: lptmr_driver.h:40
void LPTMR_DRV_SetPinConfiguration(const uint32_t instance, const lptmr_pinselect_t pinSelect, const lptmr_pinpolarity_t pinPolarity)
Set the Input Pin configuration for Pulse Counter mode.
status_t LPTMR_DRV_SetCompareValueByCount(const uint32_t instance, const uint16_t compareValueByCount)
Set the compare value in counter tick units, for a LPTMR instance.
status_t LPTMR_DRV_SetCompareValueByUs(const uint32_t instance, const uint32_t compareValueUs)
Set the compare value for Timer Mode in microseconds, for a LPTMR instance.
bool LPTMR_DRV_GetCompareFlag(const uint32_t instance)
Get the current state of the Compare Flag of a LPTMR instance.