質問: SD.open("test.txt",FILE_WRITE); if(myFile) { Serial.println("test.txtをSDに書き込んでいます"); myFile.print( senX ); myFile.print(","); myFile.print( senY ); myFile.print(","); myFile.println( senZ ); myFile.close(); Serial.println("書き込みが完了しました"); } else { Serial.println(F("error opening test.txt")); } delay(20); }
回答: まず、 1.SDカードの書き込みでどれだけ時間かかるかを測定 この時点で5000点/秒の書き込み速度が確保できないとどーしよーもありません。 これをクリアできるめどがついたなら、 2.IICアクセスを割り込み駆動形に作り変えて、バックグランドでデータ取得できるようにする と、これを実装し、0.2ms 以内でのデータ取得できるのを確認 これまたこれを満足できなければムリムリ 3.内蔵タイマで0.2msec周期のトリガでIIC起動をかける という手順になります。 まあ、おそらくはCPUと周辺デバイスのデータシートを睨みながらスクラッチでのプログラムとなりますが、頑張ってください