mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 189:f392fc9709a3 1 /*
AnnaBridge 189:f392fc9709a3 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
AnnaBridge 189:f392fc9709a3 3 * All rights reserved.
AnnaBridge 189:f392fc9709a3 4 *
AnnaBridge 189:f392fc9709a3 5 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 189:f392fc9709a3 6 * are permitted provided that the following conditions are met:
AnnaBridge 189:f392fc9709a3 7 *
AnnaBridge 189:f392fc9709a3 8 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 189:f392fc9709a3 9 * of conditions and the following disclaimer.
AnnaBridge 189:f392fc9709a3 10 *
AnnaBridge 189:f392fc9709a3 11 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 189:f392fc9709a3 12 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 189:f392fc9709a3 13 * other materials provided with the distribution.
AnnaBridge 189:f392fc9709a3 14 *
AnnaBridge 189:f392fc9709a3 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
AnnaBridge 189:f392fc9709a3 16 * contributors may be used to endorse or promote products derived from this
AnnaBridge 189:f392fc9709a3 17 * software without specific prior written permission.
AnnaBridge 189:f392fc9709a3 18 *
AnnaBridge 189:f392fc9709a3 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 189:f392fc9709a3 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 189:f392fc9709a3 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 189:f392fc9709a3 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 189:f392fc9709a3 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 189:f392fc9709a3 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 189:f392fc9709a3 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 189:f392fc9709a3 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 189:f392fc9709a3 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 189:f392fc9709a3 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 189:f392fc9709a3 29 */
AnnaBridge 189:f392fc9709a3 30
AnnaBridge 189:f392fc9709a3 31 #ifndef _FSL_PDB_H_
AnnaBridge 189:f392fc9709a3 32 #define _FSL_PDB_H_
AnnaBridge 189:f392fc9709a3 33
AnnaBridge 189:f392fc9709a3 34 #include "fsl_common.h"
AnnaBridge 189:f392fc9709a3 35
AnnaBridge 189:f392fc9709a3 36 /*!
AnnaBridge 189:f392fc9709a3 37 * @addtogroup pdb
AnnaBridge 189:f392fc9709a3 38 * @{
AnnaBridge 189:f392fc9709a3 39 */
AnnaBridge 189:f392fc9709a3 40
AnnaBridge 189:f392fc9709a3 41
AnnaBridge 189:f392fc9709a3 42 /*******************************************************************************
AnnaBridge 189:f392fc9709a3 43 * Definitions
AnnaBridge 189:f392fc9709a3 44 ******************************************************************************/
AnnaBridge 189:f392fc9709a3 45
AnnaBridge 189:f392fc9709a3 46 /*! @name Driver version */
AnnaBridge 189:f392fc9709a3 47 /*@{*/
AnnaBridge 189:f392fc9709a3 48 /*! @brief PDB driver version 2.0.1. */
AnnaBridge 189:f392fc9709a3 49 #define FSL_PDB_DRIVER_VERSION (MAKE_VERSION(2, 0, 1))
AnnaBridge 189:f392fc9709a3 50 /*@}*/
AnnaBridge 189:f392fc9709a3 51
AnnaBridge 189:f392fc9709a3 52 /*!
AnnaBridge 189:f392fc9709a3 53 * @brief PDB flags.
AnnaBridge 189:f392fc9709a3 54 */
AnnaBridge 189:f392fc9709a3 55 enum _pdb_status_flags
AnnaBridge 189:f392fc9709a3 56 {
AnnaBridge 189:f392fc9709a3 57 kPDB_LoadOKFlag = PDB_SC_LDOK_MASK, /*!< This flag is automatically cleared when the values in buffers are
AnnaBridge 189:f392fc9709a3 58 loaded into the internal registers after the LDOK bit is set or the
AnnaBridge 189:f392fc9709a3 59 PDBEN is cleared. */
AnnaBridge 189:f392fc9709a3 60 kPDB_DelayEventFlag = PDB_SC_PDBIF_MASK, /*!< PDB timer delay event flag. */
AnnaBridge 189:f392fc9709a3 61 };
AnnaBridge 189:f392fc9709a3 62
AnnaBridge 189:f392fc9709a3 63 /*!
AnnaBridge 189:f392fc9709a3 64 * @brief PDB ADC PreTrigger channel flags.
AnnaBridge 189:f392fc9709a3 65 */
AnnaBridge 189:f392fc9709a3 66 enum _pdb_adc_pretrigger_flags
AnnaBridge 189:f392fc9709a3 67 {
AnnaBridge 189:f392fc9709a3 68 /* PDB PreTrigger channel match flags. */
AnnaBridge 189:f392fc9709a3 69 kPDB_ADCPreTriggerChannel0Flag = PDB_S_CF(1U << 0), /*!< Pre-trigger 0 flag. */
AnnaBridge 189:f392fc9709a3 70 kPDB_ADCPreTriggerChannel1Flag = PDB_S_CF(1U << 1), /*!< Pre-trigger 1 flag. */
AnnaBridge 189:f392fc9709a3 71 #if (PDB_DLY_COUNT2 > 2)
AnnaBridge 189:f392fc9709a3 72 kPDB_ADCPreTriggerChannel2Flag = PDB_S_CF(1U << 2), /*!< Pre-trigger 2 flag. */
AnnaBridge 189:f392fc9709a3 73 kPDB_ADCPreTriggerChannel3Flag = PDB_S_CF(1U << 3), /*!< Pre-trigger 3 flag. */
AnnaBridge 189:f392fc9709a3 74 #endif /* PDB_DLY_COUNT2 > 2 */
AnnaBridge 189:f392fc9709a3 75 #if (PDB_DLY_COUNT2 > 4)
AnnaBridge 189:f392fc9709a3 76 kPDB_ADCPreTriggerChannel4Flag = PDB_S_CF(1U << 4), /*!< Pre-trigger 4 flag. */
AnnaBridge 189:f392fc9709a3 77 kPDB_ADCPreTriggerChannel5Flag = PDB_S_CF(1U << 5), /*!< Pre-trigger 5 flag. */
AnnaBridge 189:f392fc9709a3 78 kPDB_ADCPreTriggerChannel6Flag = PDB_S_CF(1U << 6), /*!< Pre-trigger 6 flag. */
AnnaBridge 189:f392fc9709a3 79 kPDB_ADCPreTriggerChannel7Flag = PDB_S_CF(1U << 7), /*!< Pre-trigger 7 flag. */
AnnaBridge 189:f392fc9709a3 80 #endif /* PDB_DLY_COUNT2 > 4 */
AnnaBridge 189:f392fc9709a3 81
AnnaBridge 189:f392fc9709a3 82 /* PDB PreTrigger channel error flags. */
AnnaBridge 189:f392fc9709a3 83 kPDB_ADCPreTriggerChannel0ErrorFlag = PDB_S_ERR(1U << 0), /*!< Pre-trigger 0 Error. */
AnnaBridge 189:f392fc9709a3 84 kPDB_ADCPreTriggerChannel1ErrorFlag = PDB_S_ERR(1U << 1), /*!< Pre-trigger 1 Error. */
AnnaBridge 189:f392fc9709a3 85 #if (PDB_DLY_COUNT2 > 2)
AnnaBridge 189:f392fc9709a3 86 kPDB_ADCPreTriggerChannel2ErrorFlag = PDB_S_ERR(1U << 2), /*!< Pre-trigger 2 Error. */
AnnaBridge 189:f392fc9709a3 87 kPDB_ADCPreTriggerChannel3ErrorFlag = PDB_S_ERR(1U << 3), /*!< Pre-trigger 3 Error. */
AnnaBridge 189:f392fc9709a3 88 #endif /* PDB_DLY_COUNT2 > 2 */
AnnaBridge 189:f392fc9709a3 89 #if (PDB_DLY_COUNT2 > 4)
AnnaBridge 189:f392fc9709a3 90 kPDB_ADCPreTriggerChannel4ErrorFlag = PDB_S_ERR(1U << 4), /*!< Pre-trigger 4 Error. */
AnnaBridge 189:f392fc9709a3 91 kPDB_ADCPreTriggerChannel5ErrorFlag = PDB_S_ERR(1U << 5), /*!< Pre-trigger 5 Error. */
AnnaBridge 189:f392fc9709a3 92 kPDB_ADCPreTriggerChannel6ErrorFlag = PDB_S_ERR(1U << 6), /*!< Pre-trigger 6 Error. */
AnnaBridge 189:f392fc9709a3 93 kPDB_ADCPreTriggerChannel7ErrorFlag = PDB_S_ERR(1U << 7), /*!< Pre-trigger 7 Error. */
AnnaBridge 189:f392fc9709a3 94 #endif /* PDB_DLY_COUNT2 > 4 */
AnnaBridge 189:f392fc9709a3 95 };
AnnaBridge 189:f392fc9709a3 96
AnnaBridge 189:f392fc9709a3 97 /*!
AnnaBridge 189:f392fc9709a3 98 * @brief PDB buffer interrupts.
AnnaBridge 189:f392fc9709a3 99 */
AnnaBridge 189:f392fc9709a3 100 enum _pdb_interrupt_enable
AnnaBridge 189:f392fc9709a3 101 {
AnnaBridge 189:f392fc9709a3 102 kPDB_SequenceErrorInterruptEnable = PDB_SC_PDBEIE_MASK, /*!< PDB sequence error interrupt enable. */
AnnaBridge 189:f392fc9709a3 103 kPDB_DelayInterruptEnable = PDB_SC_PDBIE_MASK, /*!< PDB delay interrupt enable. */
AnnaBridge 189:f392fc9709a3 104 };
AnnaBridge 189:f392fc9709a3 105
AnnaBridge 189:f392fc9709a3 106 /*!
AnnaBridge 189:f392fc9709a3 107 * @brief PDB load value mode.
AnnaBridge 189:f392fc9709a3 108 *
AnnaBridge 189:f392fc9709a3 109 * Selects the mode to load the internal values after doing the load operation (write 1 to PDBx_SC[LDOK]).
AnnaBridge 189:f392fc9709a3 110 * These values are for the following operations.
AnnaBridge 189:f392fc9709a3 111 * - PDB counter (PDBx_MOD, PDBx_IDLY)
AnnaBridge 189:f392fc9709a3 112 * - ADC trigger (PDBx_CHnDLYm)
AnnaBridge 189:f392fc9709a3 113 * - DAC trigger (PDBx_DACINTx)
AnnaBridge 189:f392fc9709a3 114 * - CMP trigger (PDBx_POyDLY)
AnnaBridge 189:f392fc9709a3 115 */
AnnaBridge 189:f392fc9709a3 116 typedef enum _pdb_load_value_mode
AnnaBridge 189:f392fc9709a3 117 {
AnnaBridge 189:f392fc9709a3 118 kPDB_LoadValueImmediately = 0U, /*!< Load immediately after 1 is written to LDOK. */
AnnaBridge 189:f392fc9709a3 119 kPDB_LoadValueOnCounterOverflow = 1U, /*!< Load when the PDB counter overflows (reaches the MOD
AnnaBridge 189:f392fc9709a3 120 register value). */
AnnaBridge 189:f392fc9709a3 121 kPDB_LoadValueOnTriggerInput = 2U, /*!< Load a trigger input event is detected. */
AnnaBridge 189:f392fc9709a3 122 kPDB_LoadValueOnCounterOverflowOrTriggerInput = 3U, /*!< Load either when the PDB counter overflows or a trigger
AnnaBridge 189:f392fc9709a3 123 input is detected. */
AnnaBridge 189:f392fc9709a3 124 } pdb_load_value_mode_t;
AnnaBridge 189:f392fc9709a3 125
AnnaBridge 189:f392fc9709a3 126 /*!
AnnaBridge 189:f392fc9709a3 127 * @brief Prescaler divider.
AnnaBridge 189:f392fc9709a3 128 *
AnnaBridge 189:f392fc9709a3 129 * Counting uses the peripheral clock divided by multiplication factor selected by times of MULT.
AnnaBridge 189:f392fc9709a3 130 */
AnnaBridge 189:f392fc9709a3 131 typedef enum _pdb_prescaler_divider
AnnaBridge 189:f392fc9709a3 132 {
AnnaBridge 189:f392fc9709a3 133 kPDB_PrescalerDivider1 = 0U, /*!< Divider x1. */
AnnaBridge 189:f392fc9709a3 134 kPDB_PrescalerDivider2 = 1U, /*!< Divider x2. */
AnnaBridge 189:f392fc9709a3 135 kPDB_PrescalerDivider4 = 2U, /*!< Divider x4. */
AnnaBridge 189:f392fc9709a3 136 kPDB_PrescalerDivider8 = 3U, /*!< Divider x8. */
AnnaBridge 189:f392fc9709a3 137 kPDB_PrescalerDivider16 = 4U, /*!< Divider x16. */
AnnaBridge 189:f392fc9709a3 138 kPDB_PrescalerDivider32 = 5U, /*!< Divider x32. */
AnnaBridge 189:f392fc9709a3 139 kPDB_PrescalerDivider64 = 6U, /*!< Divider x64. */
AnnaBridge 189:f392fc9709a3 140 kPDB_PrescalerDivider128 = 7U, /*!< Divider x128. */
AnnaBridge 189:f392fc9709a3 141 } pdb_prescaler_divider_t;
AnnaBridge 189:f392fc9709a3 142
AnnaBridge 189:f392fc9709a3 143 /*!
AnnaBridge 189:f392fc9709a3 144 * @brief Multiplication factor select for prescaler.
AnnaBridge 189:f392fc9709a3 145 *
AnnaBridge 189:f392fc9709a3 146 * Selects the multiplication factor of the prescaler divider for the counter clock.
AnnaBridge 189:f392fc9709a3 147 */
AnnaBridge 189:f392fc9709a3 148 typedef enum _pdb_divider_multiplication_factor
AnnaBridge 189:f392fc9709a3 149 {
AnnaBridge 189:f392fc9709a3 150 kPDB_DividerMultiplicationFactor1 = 0U, /*!< Multiplication factor is 1. */
AnnaBridge 189:f392fc9709a3 151 kPDB_DividerMultiplicationFactor10 = 1U, /*!< Multiplication factor is 10. */
AnnaBridge 189:f392fc9709a3 152 kPDB_DividerMultiplicationFactor20 = 2U, /*!< Multiplication factor is 20. */
AnnaBridge 189:f392fc9709a3 153 kPDB_DividerMultiplicationFactor40 = 3U, /*!< Multiplication factor is 40. */
AnnaBridge 189:f392fc9709a3 154 } pdb_divider_multiplication_factor_t;
AnnaBridge 189:f392fc9709a3 155
AnnaBridge 189:f392fc9709a3 156 /*!
AnnaBridge 189:f392fc9709a3 157 * @brief Trigger input source
AnnaBridge 189:f392fc9709a3 158 *
AnnaBridge 189:f392fc9709a3 159 * Selects the trigger input source for the PDB. The trigger input source can be internal or external (EXTRG pin), or
AnnaBridge 189:f392fc9709a3 160 * the software trigger. See chip configuration details for the actual PDB input trigger connections.
AnnaBridge 189:f392fc9709a3 161 */
AnnaBridge 189:f392fc9709a3 162 typedef enum _pdb_trigger_input_source
AnnaBridge 189:f392fc9709a3 163 {
AnnaBridge 189:f392fc9709a3 164 kPDB_TriggerInput0 = 0U, /*!< Trigger-In 0. */
AnnaBridge 189:f392fc9709a3 165 kPDB_TriggerInput1 = 1U, /*!< Trigger-In 1. */
AnnaBridge 189:f392fc9709a3 166 kPDB_TriggerInput2 = 2U, /*!< Trigger-In 2. */
AnnaBridge 189:f392fc9709a3 167 kPDB_TriggerInput3 = 3U, /*!< Trigger-In 3. */
AnnaBridge 189:f392fc9709a3 168 kPDB_TriggerInput4 = 4U, /*!< Trigger-In 4. */
AnnaBridge 189:f392fc9709a3 169 kPDB_TriggerInput5 = 5U, /*!< Trigger-In 5. */
AnnaBridge 189:f392fc9709a3 170 kPDB_TriggerInput6 = 6U, /*!< Trigger-In 6. */
AnnaBridge 189:f392fc9709a3 171 kPDB_TriggerInput7 = 7U, /*!< Trigger-In 7. */
AnnaBridge 189:f392fc9709a3 172 kPDB_TriggerInput8 = 8U, /*!< Trigger-In 8. */
AnnaBridge 189:f392fc9709a3 173 kPDB_TriggerInput9 = 9U, /*!< Trigger-In 9. */
AnnaBridge 189:f392fc9709a3 174 kPDB_TriggerInput10 = 10U, /*!< Trigger-In 10. */
AnnaBridge 189:f392fc9709a3 175 kPDB_TriggerInput11 = 11U, /*!< Trigger-In 11. */
AnnaBridge 189:f392fc9709a3 176 kPDB_TriggerInput12 = 12U, /*!< Trigger-In 12. */
AnnaBridge 189:f392fc9709a3 177 kPDB_TriggerInput13 = 13U, /*!< Trigger-In 13. */
AnnaBridge 189:f392fc9709a3 178 kPDB_TriggerInput14 = 14U, /*!< Trigger-In 14. */
AnnaBridge 189:f392fc9709a3 179 kPDB_TriggerSoftware = 15U, /*!< Trigger-In 15, software trigger. */
AnnaBridge 189:f392fc9709a3 180 } pdb_trigger_input_source_t;
AnnaBridge 189:f392fc9709a3 181
AnnaBridge 189:f392fc9709a3 182 /*!
AnnaBridge 189:f392fc9709a3 183 * @brief PDB module configuration.
AnnaBridge 189:f392fc9709a3 184 */
AnnaBridge 189:f392fc9709a3 185 typedef struct _pdb_config
AnnaBridge 189:f392fc9709a3 186 {
AnnaBridge 189:f392fc9709a3 187 pdb_load_value_mode_t loadValueMode; /*!< Select the load value mode. */
AnnaBridge 189:f392fc9709a3 188 pdb_prescaler_divider_t prescalerDivider; /*!< Select the prescaler divider. */
AnnaBridge 189:f392fc9709a3 189 pdb_divider_multiplication_factor_t dividerMultiplicationFactor; /*!< Multiplication factor select for prescaler. */
AnnaBridge 189:f392fc9709a3 190 pdb_trigger_input_source_t triggerInputSource; /*!< Select the trigger input source. */
AnnaBridge 189:f392fc9709a3 191 bool enableContinuousMode; /*!< Enable the PDB operation in Continuous mode.*/
AnnaBridge 189:f392fc9709a3 192 } pdb_config_t;
AnnaBridge 189:f392fc9709a3 193
AnnaBridge 189:f392fc9709a3 194 /*!
AnnaBridge 189:f392fc9709a3 195 * @brief PDB ADC Pre-trigger configuration.
AnnaBridge 189:f392fc9709a3 196 */
AnnaBridge 189:f392fc9709a3 197 typedef struct _pdb_adc_pretrigger_config
AnnaBridge 189:f392fc9709a3 198 {
AnnaBridge 189:f392fc9709a3 199 uint32_t enablePreTriggerMask; /*!< PDB Channel Pre-trigger Enable. */
AnnaBridge 189:f392fc9709a3 200 uint32_t enableOutputMask; /*!< PDB Channel Pre-trigger Output Select.
AnnaBridge 189:f392fc9709a3 201 PDB channel's corresponding pre-trigger asserts when the counter
AnnaBridge 189:f392fc9709a3 202 reaches the channel delay register. */
AnnaBridge 189:f392fc9709a3 203 uint32_t enableBackToBackOperationMask; /*!< PDB Channel pre-trigger Back-to-Back Operation Enable.
AnnaBridge 189:f392fc9709a3 204 Back-to-back operation enables the ADC conversions complete to trigger
AnnaBridge 189:f392fc9709a3 205 the next PDB channel pre-trigger and trigger output, so that the ADC
AnnaBridge 189:f392fc9709a3 206 conversions can be triggered on next set of configuration and results
AnnaBridge 189:f392fc9709a3 207 registers.*/
AnnaBridge 189:f392fc9709a3 208 } pdb_adc_pretrigger_config_t;
AnnaBridge 189:f392fc9709a3 209
AnnaBridge 189:f392fc9709a3 210 /*!
AnnaBridge 189:f392fc9709a3 211 * @brief PDB DAC trigger configuration.
AnnaBridge 189:f392fc9709a3 212 */
AnnaBridge 189:f392fc9709a3 213 typedef struct _pdb_dac_trigger_config
AnnaBridge 189:f392fc9709a3 214 {
AnnaBridge 189:f392fc9709a3 215 bool enableExternalTriggerInput; /*!< Enables the external trigger for DAC interval counter. */
AnnaBridge 189:f392fc9709a3 216 bool enableIntervalTrigger; /*!< Enables the DAC interval trigger. */
AnnaBridge 189:f392fc9709a3 217 } pdb_dac_trigger_config_t;
AnnaBridge 189:f392fc9709a3 218
AnnaBridge 189:f392fc9709a3 219 /*******************************************************************************
AnnaBridge 189:f392fc9709a3 220 * API
AnnaBridge 189:f392fc9709a3 221 ******************************************************************************/
AnnaBridge 189:f392fc9709a3 222 #if defined(__cplusplus)
AnnaBridge 189:f392fc9709a3 223 extern "C" {
AnnaBridge 189:f392fc9709a3 224 #endif
AnnaBridge 189:f392fc9709a3 225
AnnaBridge 189:f392fc9709a3 226 /*!
AnnaBridge 189:f392fc9709a3 227 * @name Initialization
AnnaBridge 189:f392fc9709a3 228 * @{
AnnaBridge 189:f392fc9709a3 229 */
AnnaBridge 189:f392fc9709a3 230
AnnaBridge 189:f392fc9709a3 231 /*!
AnnaBridge 189:f392fc9709a3 232 * @brief Initializes the PDB module.
AnnaBridge 189:f392fc9709a3 233 *
AnnaBridge 189:f392fc9709a3 234 * This function initializes the PDB module. The operations included are as follows.
AnnaBridge 189:f392fc9709a3 235 * - Enable the clock for PDB instance.
AnnaBridge 189:f392fc9709a3 236 * - Configure the PDB module.
AnnaBridge 189:f392fc9709a3 237 * - Enable the PDB module.
AnnaBridge 189:f392fc9709a3 238 *
AnnaBridge 189:f392fc9709a3 239 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 240 * @param config Pointer to the configuration structure. See "pdb_config_t".
AnnaBridge 189:f392fc9709a3 241 */
AnnaBridge 189:f392fc9709a3 242 void PDB_Init(PDB_Type *base, const pdb_config_t *config);
AnnaBridge 189:f392fc9709a3 243
AnnaBridge 189:f392fc9709a3 244 /*!
AnnaBridge 189:f392fc9709a3 245 * @brief De-initializes the PDB module.
AnnaBridge 189:f392fc9709a3 246 *
AnnaBridge 189:f392fc9709a3 247 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 248 */
AnnaBridge 189:f392fc9709a3 249 void PDB_Deinit(PDB_Type *base);
AnnaBridge 189:f392fc9709a3 250
AnnaBridge 189:f392fc9709a3 251 /*!
AnnaBridge 189:f392fc9709a3 252 * @brief Initializes the PDB user configuration structure.
AnnaBridge 189:f392fc9709a3 253 *
AnnaBridge 189:f392fc9709a3 254 * This function initializes the user configuration structure to a default value. The default values are as follows.
AnnaBridge 189:f392fc9709a3 255 * @code
AnnaBridge 189:f392fc9709a3 256 * config->loadValueMode = kPDB_LoadValueImmediately;
AnnaBridge 189:f392fc9709a3 257 * config->prescalerDivider = kPDB_PrescalerDivider1;
AnnaBridge 189:f392fc9709a3 258 * config->dividerMultiplicationFactor = kPDB_DividerMultiplicationFactor1;
AnnaBridge 189:f392fc9709a3 259 * config->triggerInputSource = kPDB_TriggerSoftware;
AnnaBridge 189:f392fc9709a3 260 * config->enableContinuousMode = false;
AnnaBridge 189:f392fc9709a3 261 * @endcode
AnnaBridge 189:f392fc9709a3 262 * @param config Pointer to configuration structure. See "pdb_config_t".
AnnaBridge 189:f392fc9709a3 263 */
AnnaBridge 189:f392fc9709a3 264 void PDB_GetDefaultConfig(pdb_config_t *config);
AnnaBridge 189:f392fc9709a3 265
AnnaBridge 189:f392fc9709a3 266 /*!
AnnaBridge 189:f392fc9709a3 267 * @brief Enables the PDB module.
AnnaBridge 189:f392fc9709a3 268 *
AnnaBridge 189:f392fc9709a3 269 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 270 * @param enable Enable the module or not.
AnnaBridge 189:f392fc9709a3 271 */
AnnaBridge 189:f392fc9709a3 272 static inline void PDB_Enable(PDB_Type *base, bool enable)
AnnaBridge 189:f392fc9709a3 273 {
AnnaBridge 189:f392fc9709a3 274 if (enable)
AnnaBridge 189:f392fc9709a3 275 {
AnnaBridge 189:f392fc9709a3 276 base->SC |= PDB_SC_PDBEN_MASK;
AnnaBridge 189:f392fc9709a3 277 }
AnnaBridge 189:f392fc9709a3 278 else
AnnaBridge 189:f392fc9709a3 279 {
AnnaBridge 189:f392fc9709a3 280 base->SC &= ~PDB_SC_PDBEN_MASK;
AnnaBridge 189:f392fc9709a3 281 }
AnnaBridge 189:f392fc9709a3 282 }
AnnaBridge 189:f392fc9709a3 283
AnnaBridge 189:f392fc9709a3 284 /* @} */
AnnaBridge 189:f392fc9709a3 285
AnnaBridge 189:f392fc9709a3 286 /*!
AnnaBridge 189:f392fc9709a3 287 * @name Basic Counter
AnnaBridge 189:f392fc9709a3 288 * @{
AnnaBridge 189:f392fc9709a3 289 */
AnnaBridge 189:f392fc9709a3 290
AnnaBridge 189:f392fc9709a3 291 /*!
AnnaBridge 189:f392fc9709a3 292 * @brief Triggers the PDB counter by software.
AnnaBridge 189:f392fc9709a3 293 *
AnnaBridge 189:f392fc9709a3 294 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 295 */
AnnaBridge 189:f392fc9709a3 296 static inline void PDB_DoSoftwareTrigger(PDB_Type *base)
AnnaBridge 189:f392fc9709a3 297 {
AnnaBridge 189:f392fc9709a3 298 base->SC |= PDB_SC_SWTRIG_MASK;
AnnaBridge 189:f392fc9709a3 299 }
AnnaBridge 189:f392fc9709a3 300
AnnaBridge 189:f392fc9709a3 301 /*!
AnnaBridge 189:f392fc9709a3 302 * @brief Loads the counter values.
AnnaBridge 189:f392fc9709a3 303 *
AnnaBridge 189:f392fc9709a3 304 * This function loads the counter values from the internal buffer.
AnnaBridge 189:f392fc9709a3 305 * See "pdb_load_value_mode_t" about PDB's load mode.
AnnaBridge 189:f392fc9709a3 306 *
AnnaBridge 189:f392fc9709a3 307 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 308 */
AnnaBridge 189:f392fc9709a3 309 static inline void PDB_DoLoadValues(PDB_Type *base)
AnnaBridge 189:f392fc9709a3 310 {
AnnaBridge 189:f392fc9709a3 311 base->SC |= PDB_SC_LDOK_MASK;
AnnaBridge 189:f392fc9709a3 312 }
AnnaBridge 189:f392fc9709a3 313
AnnaBridge 189:f392fc9709a3 314 /*!
AnnaBridge 189:f392fc9709a3 315 * @brief Enables the DMA for the PDB module.
AnnaBridge 189:f392fc9709a3 316 *
AnnaBridge 189:f392fc9709a3 317 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 318 * @param enable Enable the feature or not.
AnnaBridge 189:f392fc9709a3 319 */
AnnaBridge 189:f392fc9709a3 320 static inline void PDB_EnableDMA(PDB_Type *base, bool enable)
AnnaBridge 189:f392fc9709a3 321 {
AnnaBridge 189:f392fc9709a3 322 if (enable)
AnnaBridge 189:f392fc9709a3 323 {
AnnaBridge 189:f392fc9709a3 324 base->SC |= PDB_SC_DMAEN_MASK;
AnnaBridge 189:f392fc9709a3 325 }
AnnaBridge 189:f392fc9709a3 326 else
AnnaBridge 189:f392fc9709a3 327 {
AnnaBridge 189:f392fc9709a3 328 base->SC &= ~PDB_SC_DMAEN_MASK;
AnnaBridge 189:f392fc9709a3 329 }
AnnaBridge 189:f392fc9709a3 330 }
AnnaBridge 189:f392fc9709a3 331
AnnaBridge 189:f392fc9709a3 332 /*!
AnnaBridge 189:f392fc9709a3 333 * @brief Enables the interrupts for the PDB module.
AnnaBridge 189:f392fc9709a3 334 *
AnnaBridge 189:f392fc9709a3 335 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 336 * @param mask Mask value for interrupts. See "_pdb_interrupt_enable".
AnnaBridge 189:f392fc9709a3 337 */
AnnaBridge 189:f392fc9709a3 338 static inline void PDB_EnableInterrupts(PDB_Type *base, uint32_t mask)
AnnaBridge 189:f392fc9709a3 339 {
AnnaBridge 189:f392fc9709a3 340 assert(0U == (mask & ~(PDB_SC_PDBEIE_MASK | PDB_SC_PDBIE_MASK)));
AnnaBridge 189:f392fc9709a3 341
AnnaBridge 189:f392fc9709a3 342 base->SC |= mask;
AnnaBridge 189:f392fc9709a3 343 }
AnnaBridge 189:f392fc9709a3 344
AnnaBridge 189:f392fc9709a3 345 /*!
AnnaBridge 189:f392fc9709a3 346 * @brief Disables the interrupts for the PDB module.
AnnaBridge 189:f392fc9709a3 347 *
AnnaBridge 189:f392fc9709a3 348 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 349 * @param mask Mask value for interrupts. See "_pdb_interrupt_enable".
AnnaBridge 189:f392fc9709a3 350 */
AnnaBridge 189:f392fc9709a3 351 static inline void PDB_DisableInterrupts(PDB_Type *base, uint32_t mask)
AnnaBridge 189:f392fc9709a3 352 {
AnnaBridge 189:f392fc9709a3 353 assert(0U == (mask & ~(PDB_SC_PDBEIE_MASK | PDB_SC_PDBIE_MASK)));
AnnaBridge 189:f392fc9709a3 354
AnnaBridge 189:f392fc9709a3 355 base->SC &= ~mask;
AnnaBridge 189:f392fc9709a3 356 }
AnnaBridge 189:f392fc9709a3 357
AnnaBridge 189:f392fc9709a3 358 /*!
AnnaBridge 189:f392fc9709a3 359 * @brief Gets the status flags of the PDB module.
AnnaBridge 189:f392fc9709a3 360 *
AnnaBridge 189:f392fc9709a3 361 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 362 *
AnnaBridge 189:f392fc9709a3 363 * @return Mask value for asserted flags. See "_pdb_status_flags".
AnnaBridge 189:f392fc9709a3 364 */
AnnaBridge 189:f392fc9709a3 365 static inline uint32_t PDB_GetStatusFlags(PDB_Type *base)
AnnaBridge 189:f392fc9709a3 366 {
AnnaBridge 189:f392fc9709a3 367 return base->SC & (PDB_SC_PDBIF_MASK | PDB_SC_LDOK_MASK);
AnnaBridge 189:f392fc9709a3 368 }
AnnaBridge 189:f392fc9709a3 369
AnnaBridge 189:f392fc9709a3 370 /*!
AnnaBridge 189:f392fc9709a3 371 * @brief Clears the status flags of the PDB module.
AnnaBridge 189:f392fc9709a3 372 *
AnnaBridge 189:f392fc9709a3 373 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 374 * @param mask Mask value of flags. See "_pdb_status_flags".
AnnaBridge 189:f392fc9709a3 375 */
AnnaBridge 189:f392fc9709a3 376 static inline void PDB_ClearStatusFlags(PDB_Type *base, uint32_t mask)
AnnaBridge 189:f392fc9709a3 377 {
AnnaBridge 189:f392fc9709a3 378 assert(0U == (mask & ~PDB_SC_PDBIF_MASK));
AnnaBridge 189:f392fc9709a3 379
AnnaBridge 189:f392fc9709a3 380 base->SC &= ~mask;
AnnaBridge 189:f392fc9709a3 381 }
AnnaBridge 189:f392fc9709a3 382
AnnaBridge 189:f392fc9709a3 383 /*!
AnnaBridge 189:f392fc9709a3 384 * @brief Specifies the counter period.
AnnaBridge 189:f392fc9709a3 385 *
AnnaBridge 189:f392fc9709a3 386 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 387 * @param value Setting value for the modulus. 16-bit is available.
AnnaBridge 189:f392fc9709a3 388 */
AnnaBridge 189:f392fc9709a3 389 static inline void PDB_SetModulusValue(PDB_Type *base, uint32_t value)
AnnaBridge 189:f392fc9709a3 390 {
AnnaBridge 189:f392fc9709a3 391 base->MOD = PDB_MOD_MOD(value);
AnnaBridge 189:f392fc9709a3 392 }
AnnaBridge 189:f392fc9709a3 393
AnnaBridge 189:f392fc9709a3 394 /*!
AnnaBridge 189:f392fc9709a3 395 * @brief Gets the PDB counter's current value.
AnnaBridge 189:f392fc9709a3 396 *
AnnaBridge 189:f392fc9709a3 397 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 398 *
AnnaBridge 189:f392fc9709a3 399 * @return PDB counter's current value.
AnnaBridge 189:f392fc9709a3 400 */
AnnaBridge 189:f392fc9709a3 401 static inline uint32_t PDB_GetCounterValue(PDB_Type *base)
AnnaBridge 189:f392fc9709a3 402 {
AnnaBridge 189:f392fc9709a3 403 return base->CNT;
AnnaBridge 189:f392fc9709a3 404 }
AnnaBridge 189:f392fc9709a3 405
AnnaBridge 189:f392fc9709a3 406 /*!
AnnaBridge 189:f392fc9709a3 407 * @brief Sets the value for the PDB counter delay event.
AnnaBridge 189:f392fc9709a3 408 *
AnnaBridge 189:f392fc9709a3 409 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 410 * @param value Setting value for PDB counter delay event. 16-bit is available.
AnnaBridge 189:f392fc9709a3 411 */
AnnaBridge 189:f392fc9709a3 412 static inline void PDB_SetCounterDelayValue(PDB_Type *base, uint32_t value)
AnnaBridge 189:f392fc9709a3 413 {
AnnaBridge 189:f392fc9709a3 414 base->IDLY = PDB_IDLY_IDLY(value);
AnnaBridge 189:f392fc9709a3 415 }
AnnaBridge 189:f392fc9709a3 416 /* @} */
AnnaBridge 189:f392fc9709a3 417
AnnaBridge 189:f392fc9709a3 418 /*!
AnnaBridge 189:f392fc9709a3 419 * @name ADC Pre-trigger
AnnaBridge 189:f392fc9709a3 420 * @{
AnnaBridge 189:f392fc9709a3 421 */
AnnaBridge 189:f392fc9709a3 422
AnnaBridge 189:f392fc9709a3 423 /*!
AnnaBridge 189:f392fc9709a3 424 * @brief Configures the ADC pre-trigger in the PDB module.
AnnaBridge 189:f392fc9709a3 425 *
AnnaBridge 189:f392fc9709a3 426 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 427 * @param channel Channel index for ADC instance.
AnnaBridge 189:f392fc9709a3 428 * @param config Pointer to the configuration structure. See "pdb_adc_pretrigger_config_t".
AnnaBridge 189:f392fc9709a3 429 */
AnnaBridge 189:f392fc9709a3 430 static inline void PDB_SetADCPreTriggerConfig(PDB_Type *base, uint32_t channel, pdb_adc_pretrigger_config_t *config)
AnnaBridge 189:f392fc9709a3 431 {
AnnaBridge 189:f392fc9709a3 432 assert(channel < PDB_C1_COUNT);
AnnaBridge 189:f392fc9709a3 433 assert(NULL != config);
AnnaBridge 189:f392fc9709a3 434
AnnaBridge 189:f392fc9709a3 435 base->CH[channel].C1 = PDB_C1_BB(config->enableBackToBackOperationMask) | PDB_C1_TOS(config->enableOutputMask) |
AnnaBridge 189:f392fc9709a3 436 PDB_C1_EN(config->enablePreTriggerMask);
AnnaBridge 189:f392fc9709a3 437 }
AnnaBridge 189:f392fc9709a3 438
AnnaBridge 189:f392fc9709a3 439 /*!
AnnaBridge 189:f392fc9709a3 440 * @brief Sets the value for the ADC pre-trigger delay event.
AnnaBridge 189:f392fc9709a3 441 *
AnnaBridge 189:f392fc9709a3 442 * This function sets the value for ADC pre-trigger delay event. It specifies the delay value for the channel's
AnnaBridge 189:f392fc9709a3 443 * corresponding pre-trigger. The pre-trigger asserts when the PDB counter is equal to the set value.
AnnaBridge 189:f392fc9709a3 444 *
AnnaBridge 189:f392fc9709a3 445 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 446 * @param channel Channel index for ADC instance.
AnnaBridge 189:f392fc9709a3 447 * @param preChannel Channel group index for ADC instance.
AnnaBridge 189:f392fc9709a3 448 * @param value Setting value for ADC pre-trigger delay event. 16-bit is available.
AnnaBridge 189:f392fc9709a3 449 */
AnnaBridge 189:f392fc9709a3 450 static inline void PDB_SetADCPreTriggerDelayValue(PDB_Type *base, uint32_t channel, uint32_t preChannel, uint32_t value)
AnnaBridge 189:f392fc9709a3 451 {
AnnaBridge 189:f392fc9709a3 452 assert(channel < PDB_C1_COUNT);
AnnaBridge 189:f392fc9709a3 453 assert(preChannel < PDB_DLY_COUNT2);
AnnaBridge 189:f392fc9709a3 454 /* xx_COUNT2 is actually the count for pre-triggers in header file. xx_COUNT is used for the count of channels. */
AnnaBridge 189:f392fc9709a3 455
AnnaBridge 189:f392fc9709a3 456 base->CH[channel].DLY[preChannel] = PDB_DLY_DLY(value);
AnnaBridge 189:f392fc9709a3 457 }
AnnaBridge 189:f392fc9709a3 458
AnnaBridge 189:f392fc9709a3 459 /*!
AnnaBridge 189:f392fc9709a3 460 * @brief Gets the ADC pre-trigger's status flags.
AnnaBridge 189:f392fc9709a3 461 *
AnnaBridge 189:f392fc9709a3 462 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 463 * @param channel Channel index for ADC instance.
AnnaBridge 189:f392fc9709a3 464 *
AnnaBridge 189:f392fc9709a3 465 * @return Mask value for asserted flags. See "_pdb_adc_pretrigger_flags".
AnnaBridge 189:f392fc9709a3 466 */
AnnaBridge 189:f392fc9709a3 467 static inline uint32_t PDB_GetADCPreTriggerStatusFlags(PDB_Type *base, uint32_t channel)
AnnaBridge 189:f392fc9709a3 468 {
AnnaBridge 189:f392fc9709a3 469 assert(channel < PDB_C1_COUNT);
AnnaBridge 189:f392fc9709a3 470
AnnaBridge 189:f392fc9709a3 471 return base->CH[channel].S;
AnnaBridge 189:f392fc9709a3 472 }
AnnaBridge 189:f392fc9709a3 473
AnnaBridge 189:f392fc9709a3 474 /*!
AnnaBridge 189:f392fc9709a3 475 * @brief Clears the ADC pre-trigger status flags.
AnnaBridge 189:f392fc9709a3 476 *
AnnaBridge 189:f392fc9709a3 477 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 478 * @param channel Channel index for ADC instance.
AnnaBridge 189:f392fc9709a3 479 * @param mask Mask value for flags. See "_pdb_adc_pretrigger_flags".
AnnaBridge 189:f392fc9709a3 480 */
AnnaBridge 189:f392fc9709a3 481 static inline void PDB_ClearADCPreTriggerStatusFlags(PDB_Type *base, uint32_t channel, uint32_t mask)
AnnaBridge 189:f392fc9709a3 482 {
AnnaBridge 189:f392fc9709a3 483 assert(channel < PDB_C1_COUNT);
AnnaBridge 189:f392fc9709a3 484
AnnaBridge 189:f392fc9709a3 485 base->CH[channel].S &= ~mask;
AnnaBridge 189:f392fc9709a3 486 }
AnnaBridge 189:f392fc9709a3 487
AnnaBridge 189:f392fc9709a3 488 /* @} */
AnnaBridge 189:f392fc9709a3 489
AnnaBridge 189:f392fc9709a3 490 #if defined(FSL_FEATURE_PDB_HAS_DAC) && FSL_FEATURE_PDB_HAS_DAC
AnnaBridge 189:f392fc9709a3 491 /*!
AnnaBridge 189:f392fc9709a3 492 * @name DAC Interval Trigger
AnnaBridge 189:f392fc9709a3 493 * @{
AnnaBridge 189:f392fc9709a3 494 */
AnnaBridge 189:f392fc9709a3 495
AnnaBridge 189:f392fc9709a3 496 /*!
AnnaBridge 189:f392fc9709a3 497 * @brief Configures the DAC trigger in the PDB module.
AnnaBridge 189:f392fc9709a3 498 *
AnnaBridge 189:f392fc9709a3 499 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 500 * @param channel Channel index for DAC instance.
AnnaBridge 189:f392fc9709a3 501 * @param config Pointer to the configuration structure. See "pdb_dac_trigger_config_t".
AnnaBridge 189:f392fc9709a3 502 */
AnnaBridge 189:f392fc9709a3 503 void PDB_SetDACTriggerConfig(PDB_Type *base, uint32_t channel, pdb_dac_trigger_config_t *config);
AnnaBridge 189:f392fc9709a3 504
AnnaBridge 189:f392fc9709a3 505 /*!
AnnaBridge 189:f392fc9709a3 506 * @brief Sets the value for the DAC interval event.
AnnaBridge 189:f392fc9709a3 507 *
AnnaBridge 189:f392fc9709a3 508 * This fucntion sets the value for DAC interval event. DAC interval trigger triggers the DAC module to update
AnnaBridge 189:f392fc9709a3 509 * the buffer when the DAC interval counter is equal to the set value.
AnnaBridge 189:f392fc9709a3 510 *
AnnaBridge 189:f392fc9709a3 511 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 512 * @param channel Channel index for DAC instance.
AnnaBridge 189:f392fc9709a3 513 * @param value Setting value for the DAC interval event.
AnnaBridge 189:f392fc9709a3 514 */
AnnaBridge 189:f392fc9709a3 515 static inline void PDB_SetDACTriggerIntervalValue(PDB_Type *base, uint32_t channel, uint32_t value)
AnnaBridge 189:f392fc9709a3 516 {
AnnaBridge 189:f392fc9709a3 517 assert(channel < PDB_INT_COUNT);
AnnaBridge 189:f392fc9709a3 518
AnnaBridge 189:f392fc9709a3 519 base->DAC[channel].INT = PDB_INT_INT(value);
AnnaBridge 189:f392fc9709a3 520 }
AnnaBridge 189:f392fc9709a3 521
AnnaBridge 189:f392fc9709a3 522 /* @} */
AnnaBridge 189:f392fc9709a3 523 #endif /* FSL_FEATURE_PDB_HAS_DAC */
AnnaBridge 189:f392fc9709a3 524
AnnaBridge 189:f392fc9709a3 525 /*!
AnnaBridge 189:f392fc9709a3 526 * @name Pulse-Out Trigger
AnnaBridge 189:f392fc9709a3 527 * @{
AnnaBridge 189:f392fc9709a3 528 */
AnnaBridge 189:f392fc9709a3 529
AnnaBridge 189:f392fc9709a3 530 /*!
AnnaBridge 189:f392fc9709a3 531 * @brief Enables the pulse out trigger channels.
AnnaBridge 189:f392fc9709a3 532 *
AnnaBridge 189:f392fc9709a3 533 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 534 * @param channelMask Channel mask value for multiple pulse out trigger channel.
AnnaBridge 189:f392fc9709a3 535 * @param enable Whether the feature is enabled or not.
AnnaBridge 189:f392fc9709a3 536 */
AnnaBridge 189:f392fc9709a3 537 static inline void PDB_EnablePulseOutTrigger(PDB_Type *base, uint32_t channelMask, bool enable)
AnnaBridge 189:f392fc9709a3 538 {
AnnaBridge 189:f392fc9709a3 539 if (enable)
AnnaBridge 189:f392fc9709a3 540 {
AnnaBridge 189:f392fc9709a3 541 base->POEN |= PDB_POEN_POEN(channelMask);
AnnaBridge 189:f392fc9709a3 542 }
AnnaBridge 189:f392fc9709a3 543 else
AnnaBridge 189:f392fc9709a3 544 {
AnnaBridge 189:f392fc9709a3 545 base->POEN &= ~(PDB_POEN_POEN(channelMask));
AnnaBridge 189:f392fc9709a3 546 }
AnnaBridge 189:f392fc9709a3 547 }
AnnaBridge 189:f392fc9709a3 548
AnnaBridge 189:f392fc9709a3 549 /*!
AnnaBridge 189:f392fc9709a3 550 * @brief Sets event values for the pulse out trigger.
AnnaBridge 189:f392fc9709a3 551 *
AnnaBridge 189:f392fc9709a3 552 * This function is used to set event values for the pulse output trigger.
AnnaBridge 189:f392fc9709a3 553 * These pulse output trigger delay values specify the delay for the PDB Pulse-out. Pulse-out goes high when the PDB
AnnaBridge 189:f392fc9709a3 554 * counter is equal to the pulse output high value (value1). Pulse-out goes low when the PDB counter is equal to the
AnnaBridge 189:f392fc9709a3 555 * pulse output low value (value2).
AnnaBridge 189:f392fc9709a3 556 *
AnnaBridge 189:f392fc9709a3 557 * @param base PDB peripheral base address.
AnnaBridge 189:f392fc9709a3 558 * @param channel Channel index for pulse out trigger channel.
AnnaBridge 189:f392fc9709a3 559 * @param value1 Setting value for pulse out high.
AnnaBridge 189:f392fc9709a3 560 * @param value2 Setting value for pulse out low.
AnnaBridge 189:f392fc9709a3 561 */
AnnaBridge 189:f392fc9709a3 562 static inline void PDB_SetPulseOutTriggerDelayValue(PDB_Type *base, uint32_t channel, uint32_t value1, uint32_t value2)
AnnaBridge 189:f392fc9709a3 563 {
AnnaBridge 189:f392fc9709a3 564 assert(channel < PDB_PODLY_COUNT);
AnnaBridge 189:f392fc9709a3 565
AnnaBridge 189:f392fc9709a3 566 base->PODLY[channel] = PDB_PODLY_DLY1(value1) | PDB_PODLY_DLY2(value2);
AnnaBridge 189:f392fc9709a3 567 }
AnnaBridge 189:f392fc9709a3 568
AnnaBridge 189:f392fc9709a3 569 /* @} */
AnnaBridge 189:f392fc9709a3 570 #if defined(__cplusplus)
AnnaBridge 189:f392fc9709a3 571 }
AnnaBridge 189:f392fc9709a3 572 #endif
AnnaBridge 189:f392fc9709a3 573 /*!
AnnaBridge 189:f392fc9709a3 574 * @}
AnnaBridge 189:f392fc9709a3 575 */
AnnaBridge 189:f392fc9709a3 576 #endif /* _FSL_PDB_H_ */