0

在将我的 Mega ADK 连接到 Galaxy Nexus 4.0.4 时,我发现了一些非常有趣的事情。

如果我有这样的循环,它工作得很好

void loop() {

    if(acc.isConnected()){   
        Serial.println("Accessory Connected");
        delay(1000);
    }
    else
        Serial.println("Accessory Not Connected");

}

但是,如果我对它进行这样的小改动,它就无法连接到手机。

void loop() {

    if(acc.isConnected())
        Serial.println("Accessory Connected");
    else
        Serial.println("Accessory Not Connected");

    delay(1000);

}

我的设置如下所示:

void setup() {

    Serial.begin(115200);

    pinMode(led, OUTPUT);

    pinMode(HabilitaMotores, OUTPUT);
    pinMode(Motor0FW, OUTPUT);
    pinMode(Motor0RW, OUTPUT);
    pinMode(Motor1FW, OUTPUT);
    pinMode(Motor1RW, OUTPUT);

    acc.powerOn();
}

你以前见过这个吗?我犯了一个我看不到的可怕错误吗?

4

1 回答 1

1

当 ADK 板尝试连接到 Android 时,它会不断轮询。Android 只等待几秒钟,之后就不允许建立连接。

在代码的第一个版本中,delay() 调用仅在连接后发生。所以在板子连接之前,板子会一直轮询,不会错过Android时间窗口。

但在第二个版本中,每次执行 loop() 函数时都会调用 delay()。所以民意调查每秒只发生一次。

于 2012-06-28T06:00:03.393 回答