就实现个50分钟充电的逻辑,充电一分钟,停1s,接着再充,就用最简单的软件延时来实现,发现不是定时精度的问题,定时前面半个小时,都还好,到后面10来分钟,整个定时的逻辑就乱了,一个停止40S,一会充电20s,好郁闷。都不知道问题出在哪里?
附上代码?大家帮忙看看。
/延时毫秒
void Delayms(__IO uint16_t time)
{
// static unsigned int i;
while(time--){
// for(i=900;i>0;i--)
for(uint8_t i=180;i>0;i--)//100
{
// Delayus();
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
}
/秒延时
void DelayS(__IO uint8_t stime)
{
while(stime--)
{
Delayms(800);//1000
}
}
主程序就是:DelayS(60) DelayS(1);