I need to finish a program before I graduate. And I wrote one. However SIMULATOR displayed PWM CLOCK FASTER THAN FOSC When debugging. I can’t found troubles. My code is given below. Hope someoone here can help me !
_PWM1IE=1;//Allow the interrupt request _PWM1IF=0;//Interrupt flag reset _PWM1IP=6; //set interrupt priority level to be 6 _IPL=1;//CPU interrupt priority level is 1
}
int main() { num = 0; // A variable initialization sign = 0; PortInit() ; PWM_Config(); while(1);//Have been circulating wait for interrupt }
void __attribute__((interrupt, no_auto_psv)) _PWM1Interrupt(void) { _PWM1IF=0;//Interrupt flag bit reset if (!num) /fi num=0,mean that every sign invert the look-up table cycle, used to determine the positive and negative half cycle waveform
sign = ~sign; //0 to be 1 ++num; // Sine table order value if (num>=200) //reset num after checking 200 pots num = 0; sin_l= pwmtab[num]; PDC1=(unsigned char)sin_l;//The assignment if(sign) {PORTBbits.RB5=1;}//reversing else {PORTBbits.RB5=0;}// reversing
Sine Wave Drive Full Bridge Inverter Circuit
in Electronic Projects
Posted
I need to finish a program before I graduate. And I wrote one. However SIMULATOR displayed PWM CLOCK FASTER THAN FOSC When debugging. I can’t found troubles. My code is given below. Hope someoone here can help me !
The datasheet of DSPIC30F2020
sign = ~sign; //0 to be 1
[/code[++num; // Sine table order value
if (num>=200) //reset num after checking 200 pots
num = 0;
sin_l= pwmtab[num];
PDC1=(unsigned char)sin_l;//The assignment
if(sign)
{PORTBbits.RB5=1;}//reversing
else
{PORTBbits.RB5=0;}// reversing
}
Appreciation!