どこに原因があるのか、WiFi単独のプログラムでチェックしたり、WiFi接続をリトライするようにしたりとやってみましたが、安定しませんでした。
原因はLEDマトリックス表示との共存
LEDマトリックスは、ライブラリ内部で表示を安定させるために、一定時間ごとに表示させています。もしや「マトリックス表示との共存」が原因かと思い、上図のような途中過程を表示させることをやめ、まずはWiFiへの接続を優先させました。その後、起動時の状態(USBの認識、WiFi、NTP時間取得など)を表示させるように、処理の変更をしました。
このようにすると、問題なくWiFiへの接続が安定しました。
ライブラリでは、表示を安定させるためにダブルバッファを使い、割り込みなどにより一定時間ごとに表示させています。解析はしていませんが、WiFi接続時に割り込みが入ると処理が途切れ途切れになり、不安定になると想定できます。
0 件のコメント:
コメントを投稿