Arduinoイーサーネットシールドの接続処理Arduinoのイーサネットシールド(Ethernet Shield)にて、リセット後1回目のclient.connect()がtimeoutする問題があると書いたのですが、調べてみると、タイムアウトの発生条件は、「コネクションを切断した直後にリセットを行って、同一宛先に再接続した場合でした」。以下、分かったことを示します。
2009/6/7追記:hamayanさんからいただいたコメントに基づき確認方法を見直しました。
調査用のスケッチ
以下に示す調査用のスケッチを作成して、PC上のWeb Serverにアクセスしてみます。EthernetライブラリをIDE-0016に変更しました。
#include <Ethernet.h>
byte mac[] = { xx, xx, xx, xx, xx, xx };
byte ip[] = { 192, 168, 0, 110 };
byte server[] = { 192, 168, 0, 10 };
Client client(server, 80);
void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(115200);
delay(1000);
}
void loop()
{
getpage();
for(;;)
; //無限ループ
}
void getpage()
{
Serial.println("connecting...");
Serial.print("client.status = ");
Serial.println(client.status(),HEX);
if (clien
(1/6) 次»
コメント(2)|コメントを書く
カテゴリー一覧
最近のコメント
このブログを友達に教える