新闻| 论坛| 博客| 在线研讨会
软件延时函数的问题
电子禅石| 2017-12-12 17:39:09 阅读:9749 发布文章

使用STM8L101F3P6 实现一个50分钟的充电循环,充一分钟,停止1s,进行检测;使用下面的延时函数,发现,到最后的十几分钟,这个循环会被打乱。原因暂时还没找到。


//延时毫秒

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);

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
电子禅石 2017-12-13 12:00:50 

其实没有问题,主要原因是充电芯片的问题,开关一次充电芯片,它本身会做检测,如果电压大于4.1V,就不输出电流。其实用示波器抓波形,完美的符合 充电一分钟,停止1s. 遇到问题,自己去想真的是软件问题吗?有没有别的原因。

属于自己的技术积累分享,成为嵌入式系统研发高手。
最近文章
签名类型
2024-04-29 16:28:59
cat 文件名
2024-04-29 15:05:34
推荐文章
最近访客