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 "device_registers.h"
25 #include "status.h"
26 #include "lptmr_hal.h"
27 
35 /*******************************************************************************
36  * Definitions
37  ******************************************************************************/
38 
44 typedef enum
45 {
49 
50 
56 typedef struct
57 {
58  /* General parameters */
59  bool dmaRequest;
61  bool freeRun;
63  /* Counter parameters */
67  uint32_t compareValue;
69  /* Pulse Counter specific parameters */
73 
74 
75 /*******************************************************************************
76  * Function prototypes
77  ******************************************************************************/
83 #if defined(__cplusplus)
84 extern "C" {
85 #endif
86 
87 
93 void LPTMR_DRV_InitConfigStruct(lptmr_config_t * const config);
94 
95 
116 void LPTMR_DRV_Init(const uint32_t instance,
117  const lptmr_config_t * const config,
118  const bool startCounter);
119 
120 
140 void LPTMR_DRV_SetConfig(const uint32_t instance,
141  const lptmr_config_t * const config);
142 
143 
150 void LPTMR_DRV_GetConfig(const uint32_t instance,
151  lptmr_config_t * const config);
152 
153 
159 void LPTMR_DRV_Deinit(const uint32_t instance);
160 
161 
172 status_t LPTMR_DRV_SetCompareValueByCount(const uint32_t instance,
173  const uint16_t compareValueByCount);
174 
175 
182 void LPTMR_DRV_GetCompareValueByCount(const uint32_t instance,
183  uint16_t * const compareValueByCount);
184 
185 
196 status_t LPTMR_DRV_SetCompareValueByUs(const uint32_t instance,
197  const uint32_t compareValueUs);
198 
199 
206 void LPTMR_DRV_GetCompareValueByUs(const uint32_t instance,
207  uint32_t * const compareValueUs);
208 
209 
216 bool LPTMR_DRV_GetCompareFlag(const uint32_t instance);
217 
218 
224 void LPTMR_DRV_ClearCompareFlag(const uint32_t instance);
225 
226 
235 bool LPTMR_DRV_IsRunning(const uint32_t instance);
236 
237 
244 void LPTMR_DRV_SetInterrupt(const uint32_t instance,
245  const bool enableInterrupt);
246 
247 
254 uint16_t LPTMR_DRV_GetCounterValueByCount(const uint32_t instance);
255 
256 
262 void LPTMR_DRV_StartCounter(const uint32_t instance);
263 
264 
270 void LPTMR_DRV_StopCounter(const uint32_t instance);
271 
272 
280 void LPTMR_DRV_SetPinConfiguration(const uint32_t instance,
281  const lptmr_pinselect_t pinSelect,
282  const lptmr_pinpolarity_t pinPolarity);
283 
284 
285 #if defined(__cplusplus)
286 }
287 #endif
288 
293 #endif /* LPTMR_DRIVER_H */
294 /*******************************************************************************
295  * EOF
296  ******************************************************************************/
void LPTMR_DRV_InitConfigStruct(lptmr_config_t *const config)
Initialize a configuration structure with default values.
lptmr_workmode_t workMode
Definition: lptmr_driver.h:62
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.
bool bypassPrescaler
Definition: lptmr_driver.h:66
lptmr_pinselect_t
Pulse Counter Input selection Implements : lptmr_pinselect_t_Class.
Definition: lptmr_hal.h:53
void LPTMR_DRV_SetInterrupt(const uint32_t instance, const bool enableInterrupt)
Enable/disable the LPTMR interrupt.
lptmr_pinpolarity_t pinPolarity
Definition: lptmr_driver.h:71
void LPTMR_DRV_StopCounter(const uint32_t instance)
Disable the LPTMR / Stop the counter.
lptmr_clocksource_t clockSelect
Definition: lptmr_driver.h:64
Defines the configuration structure for LPTMR.
Definition: lptmr_driver.h:56
void LPTMR_DRV_ClearCompareFlag(const uint32_t instance)
Clear the Compare Flag of a LPTMR instance.
lptmr_prescaler_t prescaler
Definition: lptmr_driver.h:65
bool LPTMR_DRV_IsRunning(const uint32_t instance)
Get the run state of a LPTMR instance.
lptmr_counter_units_t counterUnits
Definition: lptmr_driver.h:68
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:44
lptmr_pinselect_t pinSelect
Definition: lptmr_driver.h:70
lptmr_clocksource_t
Clock Source selection Implements : lptmr_clocksource_t_Class.
Definition: lptmr_hal.h:101
uint32_t compareValue
Definition: lptmr_driver.h:67
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_hal.h:63
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:31
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.
lptmr_workmode_t
Work Mode Implements : lptmr_workmode_t_Class.
Definition: lptmr_hal.h:71
void LPTMR_DRV_GetConfig(const uint32_t instance, lptmr_config_t *const config)
Get the current configuration of a LPTMR instance.
lptmr_prescaler_t
Prescaler Selection Implements : lptmr_prescaler_t_Class.
Definition: lptmr_hal.h:79
bool interruptEnable
Definition: lptmr_driver.h:60
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.