我在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();
}
你以前见过这个吗?我犯了一个我看不见的可怕错误吗?
答案 0 :(得分:1)
当ADK板试图连接到Android时,它会不断轮询。 Android只等待几秒钟,之后它不允许连接。
在代码的第一个版本中,delay()调用仅在连接后才会发生。因此,在电路板连接之前,电路板将继续进行轮询,并且不会错过Android时间窗口。
但是在第二个版本中,每次执行loop()函数时都会调用delay()。所以民意调查每秒只发生一次。