项目采用HC32L170JATA 48Pin芯片,使用PF01对输入信号进行捕获,测量脉冲宽度。配置如下 stc_adt_basecnt_cfg_t AdtBaseCfg;
stc_adt_CHxX_port_cfg_t AdtChCfg;
DDL_ZERO_STRUCT(AdtBaseCfg);
DDL_ZERO_STRUCT(AdtChCfg);
Sysctrl_SetPeripheralGate(SysctrlPeripheralAdvTim, TRUE);
AdtBaseCfg.enCntMode = AdtSawtoothMode;
AdtBaseCfg.enCntDir = AdtCntUp;
AdtBaseCfg.enCntClkDiv = AdtClkPClk0Div1;
Adt_Init(M0P_ADTIM4, &AdtBaseCfg);
Adt_SetPeriod(M0P_ADTIM4, 0xFFFFu);
AdtChCfg.enCap = AdtCHxCompareInput;
AdtChCfg.bFltEn = TRUE;
AdtChCfg.enFltClk = AdtFltClkPclk0Div4;
Adt_CHxXPortCfg(M0P_ADTIM4, AdtCHxB, &AdtChCfg);
Adt_CfgHwCaptureB(M0P_ADTIM4, AdtHwTrigCHxBRise);
Adt_CfgHwClear(M0P_ADTIM4, AdtHwTrigCHxBRise);
Adt_CfgHwClear(M0P_ADTIM4, AdtHwTrigCHxBFall);
Adt_EnableHwClear(M0P_ADTIM4);
Adt_ClearAllIrqFlag(M0P_ADTIM4);
Adt_CfgIrq(M0P_ADTIM4, AdtCMBIrq, TRUE);
EnableNvic(ADTIM4_IRQn, IrqLevel1, TRUE);
实际上输入无法触发捕获事件。
相同的配置在HC32L130J8TA PD01上是可以实现捕获的。
不知道哪个地方出了问题。请各位大侠帮忙看看。 |