从PIC18上的用户获取数组值?

时间:2013-05-07 15:15:06

标签: c microcontroller mplab pic18

首先让我展示一下有什么用,然后我会展示什么不起作用。此代码给出了正确的结果。

unsigned long timeOn;
long d[10];

d[0] = 8;
d[1] = 6;
d[2] = 0;
d[3] = 0;
d[4] = 0;
timeOn = 10000*d[0] + 1000*d[1] + 100*d[2] + 10*d[3] +  d[4] ;
printf("%lu",timeOn);

输出:86000

如果我希望用户输入以下值,我会得到不同的结果,这就是我的代码。

unsigned long timeOn;
long d[10];
int i;


 for(i = 0; i < 5 ; i++)
    {
        while (!ConsoleIsGetReady());
        d[i] = ConsoleGet();

    }

timeOn = 10000*d[0] + 1000*d[1] + 100*d[2] + 10*d[3] +  d[4] ;
printf("%lu",timeOn);

BYTE ConsoleGet(void)
{
    char Temp;

    while(IFS1bits.U2RXIF == 0);

    Temp = U2RXREG;
    IFS1bits.U2RXIF = 0;
    return Temp;
}

输出:619328

这不是以同样的方式工作吗?那么当用户输入值时,我会得到不同的结果呢?谢谢!

1 个答案:

答案 0 :(得分:0)

看起来控制台输出一个字符(即ASCII码),而不是整数。 只需在阅读循环中尝试d[i] = ConsoleGet() - '0';

相关问题