在线时间9 小时
UID1837243
注册时间2016-8-26
NXP金币0
该用户从未签到
新手上路

- 积分
- 42
- 最后登录
- 2016-9-28
|
static pdb_timer_config_t PDBTimerConfig;
static pdb_adc_pretrigger_config_t PDBADCTriggerConfig;
static pdb_dac_interval_config_t PDBDACIntervalConfig;
pdb_clk_prescaler_div_t divMode = kPdbClkPreDivBy1;
uint32_t busClock, modValue;
uint8_t preDivider = 1 << divMode;
CLOCK_SYS_GetFreq(kBusClock, &busClock); //40M总线时钟
modValue = busClock/preDivider/SAMPLE_RATE/2U;//配置PDB周期数,SAMPLE_RATE = 153600
// Initialize PDB driver
PDBTimerConfig.loadValueMode = kPdbLoadValueImmediately;
PDBTimerConfig.seqErrIntEnable = false;
PDBTimerConfig.clkPreDiv = divMode;
PDBTimerConfig.clkPreMultFactor = kPdbClkPreMultFactorAs1;
/*配置PDB触发源
*/
PDBTimerConfig.triggerInput = kPdbSoftTrigger;
PDBTimerConfig.continuousModeEnable = true;
PDBTimerConfig.dmaEnable = false;
PDBTimerConfig.intEnable = false;
PDB_DRV_Init(0U, &PDBTimerConfig);
/*
配置PDB触发ADC延时
*/
PDBADCTriggerConfig.adcPreTriggerIdx = 0U;//选择采样通道寄存器ADC0_SC1A
PDBADCTriggerConfig.preTriggerEnable = true;
PDBADCTriggerConfig.preTriggerOutputEnable = true;
PDBADCTriggerConfig.preTriggerBackToBackEnable = false;
PDB_DRV_ConfigAdcPreTrigger(0U, 0U, &PDBADCTriggerConfig);
//周期采样延时配置
PDB_DRV_SetTimerModulusValue(0U, modValue);
PDB_DRV_SetAdcPreTriggerDelayValue(0U, 0U, 0U, 0U);
PDB_DRV_LoadValuesCmd(0U);
// 配置系统集成模块SIM,选择PDB作为ADC触发源
SIM_HAL_SetAdcAlternativeTriggerCmd(SIM_BASE_PTR, 0U, false);
PDB_DRV_SoftTriggerCmd(0U);
采样率最高只能到50多K,上面设置SAMPLE_RATE = 150多K会无法进入DMA中断???
|
|