S32 SDK
pdb_driver.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include "clock_manager.h"

Go to the source code of this file.

Data Structures

struct  pdb_timer_config_t
 Defines the type of structure for basic timer in PDB. More...
 
struct  pdb_adc_pretrigger_config_t
 Defines the type of structure for configuring ADC's pre_trigger. More...
 

Enumerations

enum  pdb_load_value_mode_t { PDB_LOAD_VAL_IMMEDIATELY = 0U, PDB_LOAD_VAL_AT_MODULO_COUNTER = 1U, PDB_LOAD_VAL_AT_NEXT_TRIGGER = 2U, PDB_LOAD_VAL_AT_MODULO_COUNTER_OR_NEXT_TRIGGER = 3U }
 Defines the type of value load mode for the PDB module. More...
 
enum  pdb_clk_prescaler_div_t {
  PDB_CLK_PREDIV_BY_1 = 0U, PDB_CLK_PREDIV_BY_2 = 1U, PDB_CLK_PREDIV_BY_4 = 2U, PDB_CLK_PREDIV_BY_8 = 3U,
  PDB_CLK_PREDIV_BY_16 = 4U, PDB_CLK_PREDIV_BY_32 = 5U, PDB_CLK_PREDIV_BY_64 = 6U, PDB_CLK_PREDIV_BY_128 = 7U
}
 Defines the type of prescaler divider for the PDB counter clock. Implements : pdb_clk_prescaler_div_t_Class. More...
 
enum  pdb_trigger_src_t {
  PDB_TRIGGER_0 = 0U, PDB_TRIGGER_1 = 1U, PDB_TRIGGER_2 = 2U, PDB_TRIGGER_3 = 3U,
  PDB_TRIGGER_4 = 4U, PDB_TRIGGER_5 = 5U, PDB_TRIGGER_6 = 6U, PDB_TRIGGER_7 = 7U,
  PDB_TRIGGER_8 = 8U, PDB_TRIGGER_9 = 9U, PDB_TRIGGER_10 = 10U, PDB_TRIGGER_11 = 11U,
  PDB_TRIGGER_12 = 12U, PDB_TRIGGER_13 = 13U, PDB_TRIGGER_14 = 14U, PDB_SOFTWARE_TRIGGER = 15U
}
 Defines the type of trigger source mode for the PDB. More...
 
enum  pdb_clk_prescaler_mult_factor_t { PDB_CLK_PREMULT_FACT_AS_1 = 0U, PDB_CLK_PREMULT_FACT_AS_10 = 1U, PDB_CLK_PREMULT_FACT_AS_20 = 2U, PDB_CLK_PREMULT_FACT_AS_40 = 3U }
 Defines the type of the multiplication source mode for PDB. More...
 

Functions

void PDB_DRV_Init (const uint32_t instance, const pdb_timer_config_t *userConfigPtr)
 Initializes the PDB counter and triggers input. More...
 
void PDB_DRV_Deinit (const uint32_t instance)
 De-initializes the PDB module. More...
 
void PDB_DRV_SoftTriggerCmd (const uint32_t instance)
 Triggers the PDB with a software trigger. More...
 
uint32_t PDB_DRV_GetTimerValue (const uint32_t instance)
 Gets the current counter value in the PDB module. More...
 
bool PDB_DRV_GetTimerIntFlag (const uint32_t instance)
 Gets the PDB interrupt flag. More...
 
void PDB_DRV_ClearTimerIntFlag (const uint32_t instance)
 Clears the interrupt flag. More...
 
void PDB_DRV_LoadValuesCmd (const uint32_t instance)
 Executes the command of loading values. More...
 
void PDB_DRV_SetTimerModulusValue (const uint32_t instance, const uint32_t value)
 Sets the value of timer modulus. More...
 
void PDB_DRV_SetValueForTimerInterrupt (const uint32_t instance, const uint32_t value)
 Sets the value for the timer interrupt. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...