The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

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