高级会员

- 积分
- 840
- 金钱
- 840
- 注册时间
- 2016-8-23
- 在线时间
- 116 小时
|
1金钱
本帖最后由 紫气东升 于 2019-8-8 09:40 编辑
所用芯片是STM8S105K4。目的:每隔10S钟LED闪烁3次。发现用下面的闪烁函数出现了问题,当执行该函数时,其他函数就不能运行了。有什么办法可以做到LED闪烁又不影响主程序的运行??
void Control_Led_Flash(u8 LEDs,int ontimes, int offtimes, int num)
{
static int num2;
for(num2 = num; num2 > 0; num2 --)
{
LedOn(LEDs);
Delayms(ontimes);
LedOff(LEDs);
Delayms(offtimes);
}
}
|
最佳答案
查看完整内容[请看2#楼]
你这个肯定其他函数不执行啊,你开灯后,一直是delay函数一直在等待时间结束,结束后你又关灯,又一直在等待,他肯定不会执行其他的函数啊。
你可以在定时中断中几时,计时10S后,点亮指示灯,然后在中断中再计时灯亮的时间,时间到以后,在把灯关闭,在中断中再计时灯关闭的时间,时间到以后在闪第二次,这样正常函数的执行,又能有运行指示灯的效果
|