我的应用场景是这样的,pwm的周期是变化的,我想知道我的pwm一个周期内的adc的平均值是多少?那么我需要怎么做呢?是不是这样,adc的触发点是周期的0时刻,然后周期到了产生pwm周期中断,然后我再中断里计算出adc的平均值,然后再改变pwm的周期?这样会不会导致pwm不连贯,会被pwm的周期中断打断,有没有更好的办法呢?我想要的结果是pwm的周期产生adc触发源,然后经过了一个周期后,我能得到adc的平均值
user6392471:
我的意思是,我恰好在的pwm一个周期内,adc能采样n个数据,用于我后级处理,c2000能完成这种应用么?
Green Deng:
回复 user6392471:
你好,我简述一下你的要求:
你是希望在一个PWM周期内多次触发ADC,并求取多次采样的平均值?
PWM触发ADC是通过PWMxSOC信号的,一个周期只能产生各一个PWMxSOCA和PWMxSOCB。如果要多次采样的话我建议只能用多个同步的PWM模块去触发ADC模块,以这样的方式达到多次采样的目的。有个帖子你也可以参考一下:e2echina.ti.com/…/431394
另外,你提到PWM周期是变化的,是指PWM在做变频控制吗?
user6392471:
回复 Green Deng:
是的,pwm是变频的
user6423809:
回复 user6392471:
我认为可以用两路PWM,比如PWM1A 和 PWM2A。
假如要一个PWM周期内采样10次计算平均值,可以将2A的频率设置为1A频率的10倍,并用2A去触发ADC采样,这样,再1A的一个PWM周期内,就实现了10次采样。再用1A去触发一个中断,将10次采样值计算平均值。
Green Deng:
回复 user6423809:
也可以这样做,但总的来说一个PWM周期内多次触发ADC采样,直接实施不太可行,只能采用间接的方式去达成