Пример #1
0
/*FUNCTION*********************************************************************
 *
 * Function Name : PDB_DRV_Deinit
 * Description   : De-initialize the PDB module.
 * When the PDB module is not used. Calling this function would shutdown the 
 * PDB module and reduce the power consumption.
 *
 *END*************************************************************************/
pdb_status_t PDB_DRV_Deinit(uint32_t instance)
{
    assert(instance < PDB_INSTANCE_COUNT);
    PDB_Type * base = g_pdbBase[instance];

    INT_SYS_DisableIRQ( g_pdbIrqId[instance] );
    PDB_HAL_Disable(base);
    CLOCK_SYS_DisablePdbClock(instance);

    return kStatus_PDB_Success;
}
/*FUNCTION*********************************************************************
 *
 * Function Name : PDB_HAL_Init
 * Description   : Reset PDB's registers to a known state. This state is
 * defined in Reference Manual, which is power on reset value.
 *
 *END*************************************************************************/
void PDB_HAL_Init(PDB_Type * base)
{
    uint32_t chn, preChn;

    /* Note: The setting would take effect only when the PDBEN bit is set. */
    PDB_WR_SC(base, PDB_SC_PDBEN_MASK);

    PDB_WR_MOD(base, 0xFFFFU);
    PDB_WR_IDLY(base, 0xFFFFU);
    /* For ADC trigger. */
    for (chn = 0U; chn < PDB_C1_COUNT; chn++)
    {
        PDB_WR_C1(base, chn, 0U);
        PDB_WR_S(base, chn,0xFU);
        for (preChn = 0U; preChn < FSL_FEATURE_PDB_ADC_PRE_CHANNEL_COUNT; preChn++)
        {
            PDB_HAL_SetAdcPreTriggerDelayValue(base, chn, preChn, 0U);
        }
    }

#if FSL_FEATURE_PDB_HAS_DAC
    /* For DAC trigger. */
    for (chn = 0U; chn < PDB_INTC_COUNT; chn++)
    {
        PDB_WR_INTC(base, chn, 0U);
        PDB_WR_INT(base ,chn, 0U);
    }
#endif

    /* For Pulse out trigger. */
    PDB_WR_POEN(base, 0U);
    for (chn = 0U; chn < PDB_PODLY_COUNT; chn++)
    {
        PDB_WR_PODLY(base, chn, 0U);
    }
    /* Load the setting value. */
    PDB_HAL_SetLoadValuesCmd(base);
    PDB_HAL_Disable(base);
}