现使用dsp280023做一个小项目,PWM的频率工作在50kHz以上,程序采用pwm中断,我现在采样是使用epwm来触发AD采样,在每个PWM的时基计数器等于0和TBPRD两个值时触发SOC,这样一个PWM周期内采集两次,但实验后发现一个PWM周期内只读取两次result寄存器内的采样值无法满足项目要求。因此,我打算采用定时器触发AD采样,定时周期为2us,每个定时中断读取一次AD采样值,这样一个pwm周期内可以读取10次AD采样值,但采用定时中断时,中断内其他程序的时间开销大于2us,无法在一个中断时间内完成一次程序运行。
所以,有没有一种方法可以实现在一个PWM周期内完成十次AD采样结果的读取,同时不影响其他程序的运行?
Green Deng:
user6574641 说:但采用定时中断时,中断内其他程序的时间开销大于2us
“中断内”是指ADC中断内有其他程序执行还是什么?
不知道你的中断内其他程序对执行时间有没有严格要求,如果没有的话可以考虑用中断嵌套的方式确保ADC中断每次都能执行。
,
shu hai feng:
配置10个soc,用同一个触发源就可以了。
,
user6574641:
中断是定时中断,周期是2us,中断内要执行的程序是读取AD采用结果后进行一些计算和逻辑处理,这些程序在2us内无法执行完毕。
另外,我觉得楼下的方法可以尝试一下,还是采用PWM触发AD,然后配置十个SOC,用同一个触发源
,
user6574641:
嗯嗯,我觉得这个方法可以试一下
,
Green Deng:
就是不知道会不会产生采样空档期,可以尝试一下
,
user6574641:
采样空档期是指?担心采集不到吗?