我开发了此程序,该程序应该在LCD的顶行上显示1-99之间的所有奇数,每次迭代之间有0.5秒的延迟。

但是,当我运行下面的代码时,我的输出仅是“ 13”,然后是“ 133”,我对为什么这样做感到困惑。

我的代码:

#define _XTAL_FREQ 3276800
#include <xc.h>
#include "LCDdrive.h"

void main (void) {
    unsigned int oddNumber = 1;
    unsigned int nextNumber = 0;
    unsigned short i;

    LCD_initialise();
    LCD_cursor(0,0);
    LCD_display_value(oddNumber);

    while (1) {
        for (i = 0; i < 100; i++) {
            nextNumber = oddNumber + 2;

            LCD_cursor(1,0);
            LCD_display_value(nextNumber);
            __delay_ms(500);
            LCD_display_value(nextNumber);
            __delay_ms(500);
        }
    }
}

最佳答案

该程序确实做了应做的事情:

尝试这样的事情:

#define _XTAL_FREQ 3276800
#include <xc.h>
#include "LCDdrive.h"

void main (void) {
    unsigned int nextNumber = 0;
    unsigned short i;

    LCD_initialise();
    LCD_cursor(0,0);
    LCD_display_value(oddNumber);

    while (1) {

        for (i = 0; i < 50; i++) {
            nextNumber = nextNumber + 2;
            LCD_cursor(1,0);
            LCD_display_value(nextNumber);
            __delay_ms(500);
        }
    }
}

09-07 22:25