gpt4 book ai didi

c - 用C语言制作一个液晶屏定时器

转载 作者:行者123 更新时间:2023-11-30 20:36:25 25 4
gpt4 key购买 nike

我正在尝试为液晶屏制作一个计时器。我通常不编程,因为它与我的学位无关,但我认为我会为了乐趣而这样做。我正在使用由 friend 设计的内置库。
我在下面设计了 if 循环,只是有关我的循环的一些快速信息。LCD_cursor 语句在屏幕上移动光标,以便我可以在正确的位置打印字母。LCD_display_value 函数用于打印整数的值。

我遇到的问题是,它打印一切正常,直到到达 time2,然后它只是跳过 10 位数字并正常进行。它的作用是在正确的点完成循环。

time1 = 1; time2 = 4; time3 = 4; finish = 3;        
while (finish != 1) {
if (time1 == 0 && time2 == 0 && time3 == 0)
finish = 1;
if (time1 != 0)
time1 = time1 - 1;
else {time2 = time2 - 1;
time1 = 9;}

if (time2 == 0){
LCD_cursor(14,0);
LCD_display_value(time2);
Delay_ms(200);

if (time3 != 0){
time2 = 5;
time3 = time3 - 1;
time1 = 9;
}
}

LCD_cursor(15,0);
LCD_display_value(time1);
LCD_cursor(14,0);
LCD_display_value(time2);
LCD_cursor(13,0);
LCD_putch(':');
LCD_cursor(12,0);
LCD_display_value(time3);
delay_ms(200);
}

最佳答案

改变

if (time2 == 0)

if (time2 == 0 && time1==0)
<小时/>

重新排列代码块,您还可以修复退出条件:

#include <stdio.h>

int main(){

int time1 = 1;
int time2 = 4;
int time3 = 4;

while (time1 || time2 || time3) {

if (time1 != 0)
time1 = time1 - 1;
else {
time2 = time2 - 1;
time1 = 9;
}

printf("%d:%d%d\n", time3, time2, time1);

if (time2 == 0 && time1 == 0){

if (time3 != 0){
time2 = 5;
time3 = time3 - 1;
time1 = 9;
printf("inner %d:%d%d\n", time3, time2, time1);
}
}

}
return 0;
}

关于c - 用C语言制作一个液晶屏定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36047275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com