为什么PDB硬件触发ADC老是引起Pre-trigger错误[解决]

2020-02-19 20:58发布

本帖最后由 bailao99 于 2015-3-31 21:06 编辑

把adc_hw_trigger pdb的例子应用到其它程序,很容易导致PDB硬件触发ADC Pre-trigger错误
测试中发现,如果pre-trigger使能,ADC不读取结果会导致 Pre-trigger错误,ADC中断程序执行时间过长,例如插入printf指令,也会导致 Pre-trigger错误
有时候ADC先初始化,然后PDB初始化触发ADC,那么马上发生Pre-trigger错误
开发环境:Kinetis SDK V1.1.0,MDK513,FRDM-K22F

问题原因:ADC再次初始化之前,必须Deinit
解决方案:AD中断完成后PDB_DRV_DisableAdcPreTrigger,PDB_DRV_ClearAdcPreTriggerFlag,如果要改变ADC设置,那么先执行ADC16_DRV_Deinit,然后再次初始化ADC和PDB,AD中断中可以读到新设通道的值,且不会导致Pre-trigger错误
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。