关于逻辑键盘点亮LED实验

保证会结贴!帐号之前别人用来发过两个问题,我刚结贴了!
C/C++ code

int main(void)
{
    int i=0, a[4] = {0,3,5,6};
    unsigned long t;
    Init();
    while(1)
    {
        t = GPGDAT;
        for(i=0; i<4; i++)
        {
            if(t & (1<<a[i]))
            {
                Off(i+1);
            }
            else
            {
                On(i+1);
            }
        }
    }
    return 0;
}



我很是奇怪,在用键盘点亮LED灯的实验中。我直接写1<<a[i],烧到板内4个LED都亮,按KEY没用。
当我把FOR循环拆开,写成4个if else语句,并且把a[i]响应的变成0,3,5,6。这样才能正常地一次按KEY1点亮LED1,按key2点亮LED2。
不知道是我有点迷糊,还是其它原因,或许大家能帮助我一下。

作者: angrad   发布时间: 2011-05-25

从程序看,是直接根据GPIO的GPG0、GPG3、GPG5、GPG6口状态设置LED开关状态的吧?

作者: zhaokai3000   发布时间: 2011-05-25