TI中文支持网
TI专业的中文技术问题搜集分享网站

28335PWM的TZ子模块问题

我在做直流电机控制时,需要有限位,在硬件设计上,预留了口接到GPIO21和GPIO24上,我现在在使用PWM中的TZ子模块。设置如下:现在的现象是,到了限位,GPIO24会置低,PWM也就不输出了,可是停在了中断了。我有两路PWM,也对应着两个限位,(只能一个限位为低,硬件设计),当TZ2为低时,进入中断了,可是我的TZ1还是高电平啊,为什么另一路的PWM控制不了,就停在TZ2的中断里,为什么呢?要是不到限位,也就是TZ1和TZ2不动作,我试验了,两路PWM都正常工作。这怎么解决啊?

EPwm1Setup()

{

EPwm1Regs.TASEL.bit.OSHT2=1;

EPwm1Regs.TACTL.bit.TZA=0x2;

EPwm1Regs.TZEINT.bit.OST=1;

}

interrupt void epwm1_tzint_isr(void)

{

EPwm1TZIntCount++;

EALLOW;

EPwm1Regs.TZCLR.bit.OST=1;

EPwm1Regs.TZCLR.bit.INT=1;

EDIS;

PieCtrlRegs.PIEACK.all =0x0002;

}

Terry Deng:

你可以把两路甚至多路PWM都设置到同一个TZ保护,比如TZ2,只有TZ2低电平,所有的PWM都停止输出。另外,如果不想进入TZ2中断,把该中断允许位关掉即可

我在做直流电机控制时,需要有限位,在硬件设计上,预留了口接到GPIO21和GPIO24上,我现在在使用PWM中的TZ子模块。设置如下:现在的现象是,到了限位,GPIO24会置低,PWM也就不输出了,可是停在了中断了。我有两路PWM,也对应着两个限位,(只能一个限位为低,硬件设计),当TZ2为低时,进入中断了,可是我的TZ1还是高电平啊,为什么另一路的PWM控制不了,就停在TZ2的中断里,为什么呢?要是不到限位,也就是TZ1和TZ2不动作,我试验了,两路PWM都正常工作。这怎么解决啊?

EPwm1Setup()

{

EPwm1Regs.TASEL.bit.OSHT2=1;

EPwm1Regs.TACTL.bit.TZA=0x2;

EPwm1Regs.TZEINT.bit.OST=1;

}

interrupt void epwm1_tzint_isr(void)

{

EPwm1TZIntCount++;

EALLOW;

EPwm1Regs.TZCLR.bit.OST=1;

EPwm1Regs.TZCLR.bit.INT=1;

EDIS;

PieCtrlRegs.PIEACK.all =0x0002;

}

囧:

EPwm1Regs.TASEL.bit.OSHT2=1;

EPwm1Regs.TACTL.bit.TZA=0x2;

这两个寄存器有问题,应该是TZSEL和TZCTL吧

赞(0)
未经允许不得转载:TI中文支持网 » 28335PWM的TZ子模块问题
分享到: 更多 (0)