This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
MSP430G2412通过设置P1SEL1和P2SEL2 ,使P1.2,P1.4输出两路相位相反的PWM波,驱动MOS全桥电路,工作时没有问题,但是在停止PWM输出时,两路最后输出是一个高电平,一个低电平,这样MOS电路就电流非常大,简易烧坏。要两路同时是高电平或者同时是低电平,MOS电路才能正常。我想把p1.2,p1.4改为普通的I/O,设置输出,都失败。还是哪里的设置错了,有没有大侠指教一下。
jian chen9 说:MSP430G2412通过设置P1SEL1和P2SEL2 ,使P1.2,P1.4输出两路相位相反的PWM波,驱动MOS全桥电路,工作时没有问题,但是在停止PWM输出时,两路最后输出是一个高电平,一个低电平,这样MOS电路就电流非常大,简易烧坏。要两路同时是高电平或者同时是低电平,MOS电路才能正常。我想把p1.2,p1.4改为普通的I/O,设置输出,都失败。还是哪里的设置错了,有没有大侠指教一下。
设置为带死区的PWM输出呢?
void PwmStart(void)
{
TACTL = TASSEL_2 + MC_1; // ACLK, contmode, interrupt enabled
// CCTL0 = OUTMOD_4; // CCR0 toggle, interrupt enabled
CCTL2 = OUTMOD_3; // CCR1 toggle, interrupt enabled
CCTL1 = OUTMOD_6;
CCR0 = ccr0[0];
CCR2 = ccr0[1];
CCR1 = ccr0[1];
}
void PwmStop(void)
{
TACTL &= ~(TAIE+MC0);
P1SEL &= ~(PWM1_BIT+PWM2_BIT);
P1SEL2 &= ~(PWM1_BIT+PWM2_BIT);
P1DIR |= PWM1_BIT+PWM2_BIT;
SetPwm1_Low();
SetPwm2_Low();
}
这样还是不行的,不知道为什么这样。