0

MegaADKをGalaxyNexus4.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の時間枠を見逃すことはありません。

ただし、2番目のバージョンでは、loop()関数が実行されるたびにdelay()が呼び出されます。したがって、ポーリングは毎秒1回だけ行われます。

于 2012-06-28T06:00:03.393 に答える