新的底层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开通时刻 还是关断时刻采样的。 

 

posted @ 2021-03-02 20:21  STEVEN-SUN  阅读(268)  评论(0)    收藏  举报