pdb_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 - 2015, 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 PDB_DRIVER_H
20 #define PDB_DRIVER_H
21 
22 #include <stdint.h>
23 #include <stdbool.h>
24 #include "clock_manager.h"
25 
33 /*******************************************************************************
34  * Definitions
35  ******************************************************************************/
45 typedef enum
46 {
56 
61 typedef enum
62 {
72 
80 typedef enum
81 {
85 
92 typedef enum
93 {
99 
106 typedef struct
107 {
114  bool dmaEnable;
115  bool intEnable;
117 
123 typedef struct
124 {
125  uint32_t adcPreTriggerIdx;
130 
131 #if defined(__cplusplus)
132 extern "C" {
133 #endif
134 
146 void PDB_DRV_Init(const uint32_t instance,
147  const pdb_timer_config_t * userConfigPtr);
148 
157 void PDB_DRV_Deinit(const uint32_t instance);
158 
171 void PDB_DRV_GetDefaultConfig(pdb_timer_config_t * const config);
172 
180 void PDB_DRV_Enable(const uint32_t instance);
181 
189 void PDB_DRV_Disable(const uint32_t instance);
190 
200 void PDB_DRV_SoftTriggerCmd(const uint32_t instance);
201 
210 uint32_t PDB_DRV_GetTimerValue(const uint32_t instance);
211 
220 bool PDB_DRV_GetTimerIntFlag(const uint32_t instance);
221 
229 void PDB_DRV_ClearTimerIntFlag(const uint32_t instance);
230 
238 void PDB_DRV_LoadValuesCmd(const uint32_t instance);
239 
248 void PDB_DRV_SetTimerModulusValue(const uint32_t instance,
249  const uint16_t value);
250 
259 void PDB_DRV_SetValueForTimerInterrupt(const uint32_t instance,
260  const uint16_t value);
261 
271 void PDB_DRV_ConfigAdcPreTrigger(const uint32_t instance,
272  const uint32_t chn,
273  const pdb_adc_pretrigger_config_t * configPtr);
274 
285 uint32_t PDB_DRV_GetAdcPreTriggerFlags(const uint32_t instance,
286  const uint32_t chn,
287  const uint32_t preChnMask);
288 
298 void PDB_DRV_ClearAdcPreTriggerFlags(const uint32_t instance,
299  const uint32_t chn,
300  const uint32_t preChnMask);
301 
312 uint32_t PDB_DRV_GetAdcPreTriggerSeqErrFlags(const uint32_t instance,
313  const uint32_t chn,
314  const uint32_t preChnMask);
315 
325 void PDB_DRV_ClearAdcPreTriggerSeqErrFlags(const uint32_t instance,
326  const uint32_t chn,
327  const uint32_t preChnMask);
328 
339 void PDB_DRV_SetAdcPreTriggerDelayValue(const uint32_t instance,
340  const uint32_t chn,
341  const uint32_t preChn,
342  const uint32_t value);
343 
353 void PDB_DRV_SetCmpPulseOutEnable(const uint32_t instance,
354  const uint32_t pulseChnMask,
355  bool enable);
356 
366 void PDB_DRV_SetCmpPulseOutDelayForHigh(const uint32_t instance,
367  const uint32_t pulseChn,
368  const uint32_t value);
369 
379 void PDB_DRV_SetCmpPulseOutDelayForLow(const uint32_t instance,
380  const uint32_t pulseChn,
381  const uint32_t value);
382 
383 #if defined(__cplusplus)
384 }
385 #endif
386 
391 #endif /* PDB_DRIVER_H */
392 /*******************************************************************************
393  * EOF
394  ******************************************************************************/
void PDB_DRV_ClearTimerIntFlag(const uint32_t instance)
Clears the interrupt flag.
Definition: pdb_driver.c:234
void PDB_DRV_SetCmpPulseOutEnable(const uint32_t instance, const uint32_t pulseChnMask, bool enable)
Switches on/off the CMP pulse out in the PDB module.
Definition: pdb_driver.c:409
void PDB_DRV_SetAdcPreTriggerDelayValue(const uint32_t instance, const uint32_t chn, const uint32_t preChn, const uint32_t value)
Sets the ADC pre_trigger delay value in the PDB module.
Definition: pdb_driver.c:389
pdb_clk_prescaler_mult_factor_t
Defines the type of the multiplication source mode for PDB.
Definition: pdb_driver.h:92
pdb_trigger_src_t
Defines the type of trigger source mode for the PDB.
Definition: pdb_driver.h:80
pdb_load_value_mode_t
Defines the type of value load mode for the PDB module.
Definition: pdb_driver.h:45
void PDB_DRV_ConfigAdcPreTrigger(const uint32_t instance, const uint32_t chn, const pdb_adc_pretrigger_config_t *configPtr)
Configures the ADC pre_trigger in the PDB module.
Definition: pdb_driver.c:296
void PDB_DRV_SetTimerModulusValue(const uint32_t instance, const uint16_t value)
Sets the value of timer modulus.
Definition: pdb_driver.c:264
uint32_t PDB_DRV_GetAdcPreTriggerSeqErrFlags(const uint32_t instance, const uint32_t chn, const uint32_t preChnMask)
Gets the ADC pre_trigger flag in the PDB module.
Definition: pdb_driver.c:353
uint32_t PDB_DRV_GetAdcPreTriggerFlags(const uint32_t instance, const uint32_t chn, const uint32_t preChnMask)
Gets the ADC pre_trigger flag in the PDB module.
Definition: pdb_driver.c:317
Defines the type of structure for basic timer in PDB.
Definition: pdb_driver.h:106
bool PDB_DRV_GetTimerIntFlag(const uint32_t instance)
Gets the PDB interrupt flag.
Definition: pdb_driver.c:219
uint32_t PDB_DRV_GetTimerValue(const uint32_t instance)
Gets the current counter value in the PDB module.
Definition: pdb_driver.c:203
void PDB_DRV_SetCmpPulseOutDelayForLow(const uint32_t instance, const uint32_t pulseChn, const uint32_t value)
Sets the CMP pulse out delay value for low in the PDB module.
Definition: pdb_driver.c:444
void PDB_DRV_ClearAdcPreTriggerSeqErrFlags(const uint32_t instance, const uint32_t chn, const uint32_t preChnMask)
Clears the ADC pre_trigger flag in the PDB module.
Definition: pdb_driver.c:371
void PDB_DRV_ClearAdcPreTriggerFlags(const uint32_t instance, const uint32_t chn, const uint32_t preChnMask)
Clears the ADC pre_trigger flag in the PDB module.
Definition: pdb_driver.c:335
pdb_clk_prescaler_mult_factor_t clkPreMultFactor
Definition: pdb_driver.h:111
pdb_load_value_mode_t loadValueMode
Definition: pdb_driver.h:108
void PDB_DRV_SoftTriggerCmd(const uint32_t instance)
Triggers the PDB with a software trigger.
Definition: pdb_driver.c:188
void PDB_DRV_SetValueForTimerInterrupt(const uint32_t instance, const uint16_t value)
Sets the value for the timer interrupt.
Definition: pdb_driver.c:280
void PDB_DRV_LoadValuesCmd(const uint32_t instance)
Executes the command of loading values.
Definition: pdb_driver.c:249
void PDB_DRV_Deinit(const uint32_t instance)
De-initializes the PDB module.
Definition: pdb_driver.c:111
pdb_clk_prescaler_div_t clkPreDiv
Definition: pdb_driver.h:110
void PDB_DRV_SetCmpPulseOutDelayForHigh(const uint32_t instance, const uint32_t pulseChn, const uint32_t value)
Sets the CMP pulse out delay value for high in the PDB module.
Definition: pdb_driver.c:426
pdb_trigger_src_t triggerInput
Definition: pdb_driver.h:112
void PDB_DRV_Disable(const uint32_t instance)
Disables the PDB module.
Definition: pdb_driver.c:171
void PDB_DRV_Enable(const uint32_t instance)
Enables the PDB module.
Definition: pdb_driver.c:156
void PDB_DRV_GetDefaultConfig(pdb_timer_config_t *const config)
Gets the default configuration structure of PDB with default settings.
Definition: pdb_driver.c:128
void PDB_DRV_Init(const uint32_t instance, const pdb_timer_config_t *userConfigPtr)
Initializes the PDB counter and triggers input.
Definition: pdb_driver.c:63
pdb_clk_prescaler_div_t
Defines the type of prescaler divider for the PDB counter clock. Implements : pdb_clk_prescaler_div_t...
Definition: pdb_driver.h:61
Defines the type of structure for configuring ADC's pre_trigger.
Definition: pdb_driver.h:123