现象如下:
1、插着仿真器,采用F28027.cmd,下载程序后,点“CPU Reset”和"运行"一切正常;
2、板子带电拔掉仿真器,按RESET键,程序也没问题;
3、拔掉板子电源,并重新插上电源上电,程序出问题。不是跑飞,而是第一段程序不执行。
这个程序按照时序分为两段,皆由EPWM2输出。第一段(state=1)产生随某函数变化占空比的PWM,持续2秒之后;进入第二段(state=0),产生占空比为恒定95%的PWM。
程序结构大致如下:
volatile uint state=1,k=0;
void main()
{
初始化;
开epwm2中断;
while(state);//等待2秒结束(state变成0)
配置epwm2至95%占空比;
for(;;){nop;}
}
interrupt
{
k++;//中断计数
配置D随某函数变化(改变CMPA和CMPB的值);
if(k==2000) state=0;
清标志位
}
D随某函数变化的程序,断电重上电后运行不了,但是2s之后,恒定输出95%占空比的没有问题。