Пример #1
0
/*************************************************************************
 * Function Name: PDB_init
 * Parameters: none
 * Return: none
 * Description: PDB module initialization
 *************************************************************************/
void PDB_init(void)
{
  pdb_timer_config_t pdbUserConfig;
  PDB_HAL_Init(PDB0_BASE_PTR);
  PDB_HAL_SetAdcPreTriggerOutputEnable(PDB0_BASE_PTR, 0, (1U<<0)|(1U<<1), true);
  PDB_HAL_SetAdcPreTriggerEnable(PDB0_BASE_PTR, 0, (1U<<0)|(1U<<1), true);
  PDB_HAL_SetAdcPreTriggerBackToBackEnable(PDB0_BASE_PTR, 0, (1U<<1), true);

  PDB_HAL_SetAdcPreTriggerDelayValue(PDB0_BASE_PTR, 0, 0, (PWM_MODULO / 6));

  // Set load register mode
  pdbUserConfig.loadValueMode = kPdbLoadValueImmediately;
  // Select PDB external trigger source, it is from FTM0
  pdbUserConfig.triggerInput = kPdbTrigger8;
  PDB_HAL_ConfigTimer(PDB0_BASE_PTR,&pdbUserConfig);
  PDB_HAL_Enable(PDB0_BASE_PTR);
  PDB_HAL_SetTimerModulusValue(PDB0_BASE_PTR, 0x7fff);
  PDB_HAL_SetLoadValuesCmd(PDB0_BASE_PTR);
  
  // Set load register mode
  pdbUserConfig.clkPreDiv = kPdbClkPreDivBy1;
  pdbUserConfig.loadValueMode = kPdbLoadValueAtNextTrigger;
  // Select PDB external trigger source, it is from FTM0
  pdbUserConfig.triggerInput = kPdbTrigger8;
  pdbUserConfig.seqErrIntEnable = true;
  pdbUserConfig.clkPreMultFactor = kPdbClkPreMultFactorAs1;
  PDB_HAL_ConfigTimer(PDB0_BASE_PTR,&pdbUserConfig);
  PDB_HAL_SetLoadValuesCmd(PDB0_BASE_PTR);

  enable_irq(g_pdbIrqId[0]);
  set_irq_priority(g_pdbIrqId[0], ISR_PRIORITY_PDB0);
}
Пример #2
0
/*FUNCTION*********************************************************************
 *
 * Function Name : PDB_DRV_ConfigAdcPreTrigger
 * Description   : Configure the ADC pre_trigger in the PDB module.
 *
 *END*************************************************************************/
pdb_status_t PDB_DRV_ConfigAdcPreTrigger(uint32_t instance, uint32_t chn, const pdb_adc_pretrigger_config_t *configPtr)
{
    assert(instance < PDB_INSTANCE_COUNT);
    PDB_Type * base = g_pdbBase[instance];
    
    if (!configPtr)
    {
        return kStatus_PDB_InvalidArgument; 
    }
    
    PDB_HAL_SetAdcPreTriggerEnable(base, chn, 1U << (configPtr->adcPreTriggerIdx), configPtr->preTriggerEnable);
    PDB_HAL_SetAdcPreTriggerOutputEnable(base, chn, 1U << (configPtr->adcPreTriggerIdx), configPtr->preTriggerOutputEnable);
    PDB_HAL_SetAdcPreTriggerBackToBackEnable(base, chn, 1U << (configPtr->adcPreTriggerIdx), configPtr->preTriggerBackToBackEnable);
    
    return kStatus_PDB_Success;
}