S32 SDK
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 
33 /*******************************************************************************
34  * Definitions
35  ******************************************************************************/
36 
40 typedef enum {
46 
50 typedef enum {
54 
58 typedef enum {
62 
66 typedef enum {
67  LPTMR_PRESCALE_2 = 0x00u,
84 
88 typedef enum {
94 
100 typedef enum
101 {
105 
111 typedef struct
112 {
113  /* General parameters */
114  bool dmaRequest;
116  bool freeRun;
118  /* Counter parameters */
122  uint32_t compareValue;
124  /* Pulse Counter specific parameters */
128 
129 /*******************************************************************************
130  * Function prototypes
131  ******************************************************************************/
137 #if defined(__cplusplus)
138 extern "C" {
139 #endif
140 
146 void LPTMR_DRV_InitConfigStruct(lptmr_config_t * const config);
147 
168 void LPTMR_DRV_Init(const uint32_t instance,
169  const lptmr_config_t * const config,
170  const bool startCounter);
171 
191 void LPTMR_DRV_SetConfig(const uint32_t instance,
192  const lptmr_config_t * const config);
193 
200 void LPTMR_DRV_GetConfig(const uint32_t instance,
201  lptmr_config_t * const config);
202 
208 void LPTMR_DRV_Deinit(const uint32_t instance);
209 
220 status_t LPTMR_DRV_SetCompareValueByCount(const uint32_t instance,
221  const uint16_t compareValueByCount);
222 
229 void LPTMR_DRV_GetCompareValueByCount(const uint32_t instance,
230  uint16_t * const compareValueByCount);
231 
242 status_t LPTMR_DRV_SetCompareValueByUs(const uint32_t instance,
243  const uint32_t compareValueUs);
244 
251 void LPTMR_DRV_GetCompareValueByUs(const uint32_t instance,
252  uint32_t * const compareValueUs);
253 
260 bool LPTMR_DRV_GetCompareFlag(const uint32_t instance);
261 
267 void LPTMR_DRV_ClearCompareFlag(const uint32_t instance);
268 
277 bool LPTMR_DRV_IsRunning(const uint32_t instance);
278 
285 void LPTMR_DRV_SetInterrupt(const uint32_t instance,
286  const bool enableInterrupt);
287 
294 uint16_t LPTMR_DRV_GetCounterValueByCount(const uint32_t instance);
295 
301 void LPTMR_DRV_StartCounter(const uint32_t instance);
302 
308 void LPTMR_DRV_StopCounter(const uint32_t instance);
309 
317 void LPTMR_DRV_SetPinConfiguration(const uint32_t instance,
318  const lptmr_pinselect_t pinSelect,
319  const lptmr_pinpolarity_t pinPolarity);
320 
321 #if defined(__cplusplus)
322 }
323 #endif
324 
329 #endif /* LPTMR_DRIVER_H */
330 /*******************************************************************************
331  * EOF
332  ******************************************************************************/
void LPTMR_DRV_InitConfigStruct(lptmr_config_t *const config)
Initialize a configuration structure with default values.
lptmr_workmode_t workMode
Definition: lptmr_driver.h:117
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:126
void LPTMR_DRV_StopCounter(const uint32_t instance)
Disable the LPTMR / Stop the counter.
lptmr_clocksource_t clockSelect
Definition: lptmr_driver.h:119
Defines the configuration structure for LPTMR.
Definition: lptmr_driver.h:111
void LPTMR_DRV_ClearCompareFlag(const uint32_t instance)
Clear the Compare Flag of a LPTMR instance.
lptmr_prescaler_t prescaler
Definition: lptmr_driver.h:120
lptmr_clocksource_t
Clock Source selection Implements : lptmr_clocksource_t_Class.
Definition: lptmr_driver.h:88
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:58
lptmr_counter_units_t counterUnits
Definition: lptmr_driver.h:123
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:100
lptmr_pinselect_t pinSelect
Definition: lptmr_driver.h:125
lptmr_prescaler_t
Prescaler Selection Implements : lptmr_prescaler_t_Class.
Definition: lptmr_driver.h:66
uint32_t compareValue
Definition: lptmr_driver.h:122
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:50
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.