新的底层IPS PWM周期中断可代替DMA中断的原因分析
DMA 中断
如何触发的ADC 转换 ?
现在可以不要PWM中断
即PWM 的比较寄存器的重载值
可以不在下溢中断中 进行装载。
可以在定时器中断(50us)中进行重载 否则就维持上一次的值 。
我每一次在PWM1 的 比较寄存器比较匹配之前
使能DMA中断以及定时器1

ADC 转换的触发源是如何设置?
TIM1-CCR4 TIM1->CCR4 如何设置 ?


所以:定时器1 的通道 4 当发生下降边沿的时候 ,会触发ADC采样的3个通道进行ADC的采样 ,在motor_CW() 换向函数中, 可以指明转换这3个通道中的哪一个通道。
通道转换完成以后,就会触发DMA中断, 不用CPU 搬运数据。 转换结果直接拿来让CPU用。
本程序的逻辑是:
因为我更新占空比 是在50us 一次 ,确实是比较慢的。
而1550Hz电源的程序。PI 调节器直接 放进入 双刷新的中断里面去完成的。
我可以尝试一下 把motor_pid(motor_spdobj) 放进PWM中断中观察一下程序运行情况。结果??
但是我计算反电势电压的频率确实是在每一个定时器1的通道四的匹配中断进行的,
也保证了确实是一个PWM周期 完成一次反电势的采样。
我完全可以把新的IPS底层的程序 做成在PWM周期中断中完成对反电势的采样。
然后同时进行过零点的判断, 而不用直接去区分 反电势是在PWM开通时刻 还是关断时刻采样的。

浙公网安备 33010602011771号