请问,关于永磁同步电机用SVPWM控制:
我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,
我想问的是,为什么需要这么做啊?
我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,
就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,
这样正好可以产生SVPWM。
那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?
我这种做法,不行吗?
rookiecalf:
两种中断中实现的功能是否相同?
请问,关于永磁同步电机用SVPWM控制:
我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,
我想问的是,为什么需要这么做啊?
我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,
就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,
这样正好可以产生SVPWM。
那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?
我这种做法,不行吗?
Chess Shung:
回复 rookiecalf:
对的 ,两种中断进入后,都是执行同一个中断子程序,我贴一段这个子程序的代码:
if(EPwm1Regs.ETSEL.bit.INTSEL == ET_CTR_ZERO){EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_PRD;}else{tbPrdNext = (Uint16)((long)(1.0/(CPUPRD*(1<<EPWM1_TOTAL_CLKDIV)*2))/(long)fsHzNext);EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;EPwm1Regs.TBPRD = tbPrdNext;EPwm2Regs.TBPRD = tbPrdNext;EPwm3Regs.TBPRD = tbPrdNext;}
之后的代码里,有电流Clarke变换,Park变换,Park逆变换等等,最后还有空间矢量SVPWM调制,
svgen1.Ualpha = -Ualpha1; svgen1.Ubeta = -Ubeta1;svgen1.vdc = vdc1;
svgen1.vdcbase = 100; svgen1.Svpwm_Prd = T1PWM_PRD; svgen1.calc( svgen1 ); svgen1.gen( svgen1 );
请问,关于永磁同步电机用SVPWM控制:
我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,
我想问的是,为什么需要这么做啊?
我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,
就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,
这样正好可以产生SVPWM。
那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?
我这种做法,不行吗?
Chess Shung:
回复 rookiecalf:
Changjiang Liu
两种中断中实现的功能是否相同?
请问,关于永磁同步电机用SVPWM控制:
我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,
我想问的是,为什么需要这么做啊?
我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,
就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,
这样正好可以产生SVPWM。
那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?
我这种做法,不行吗?
Chess Shung:
回复 rookiecalf:
Changjiang Liu
两种中断中实现的功能是否相同?
请问,关于永磁同步电机用SVPWM控制:
我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,
我想问的是,为什么需要这么做啊?
我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,
就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,
这样正好可以产生SVPWM。
那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?
我这种做法,不行吗?
Chess Shung:
回复 Chess Shung:
help