【发布时间】:2016-03-16 21:27:11
【问题描述】:
我正在尝试为 LCD 屏幕制作计时器。我通常不编程,因为它与我的学位无关,但我认为我会这样做是为了好玩。我正在使用一个朋友设计的内置库。
我已经设计了下面的 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);
}
【问题讨论】:
-
创意文字设计肯定有一席之地。但不适用于程序代码。
-
time2 确实等于 0,但当它等于 0 时,time1 不会从 9 开始倒计时。
-
@Olaf 我对你的评论有点困惑
-
和我一样,你的源代码的创造性格式。
-
先生。 @Olaf 如果您认为您可以帮助我解决我遇到的这个问题,我将非常乐意为您提供我获得 LCD_cursor() 和 LCD_display_value() 函数的整个 C 源代码。