7
Arduinoシリアルプリントはプログラムの動作を望ましくなく変更します
ヘッダーで宣言されているループカウンターを使用しています。 int loop_counter = 0; 私はこのカウンターを使用して、時々イベントをトリガーします。私はこれと同じタイプの動作にモジュロを使用していましたが、操作を簡単にするために単純化しました(それでも同じ動作になります) void loop() { if(loop_counter > 100) loop_counter = 0; else loop_counter++; //Serial.println("hey"); if(loop_counter == 0) { //do_something_important(); } } (この例では、この動作はばかげているので、この例ではSerialコメントを外して)通信を試みるまで、すべてが順調です。//Serial.println("hey");"hey" これにより、コードloop_counterのdo_something_important();セクションがトリガーされることはありません。と宣言しloop_counterてみましたがvolatile、何も変わりませんでした。私が試したSerial.printINGのloop_counter、そして私も(それがループをフリーズします)異常な動作を得ていました。 Serial.println("hey");シリアルモニターでたくさんの「ねえ」を取得するという意味で機能します(つまり、すぐに100を超える「ねえ」、コードの他のセクションがトリガーする必要がある反復の数)。 の使用を引き起こしている可能性のあるものは何ですか?Serial(私が知る限り)loop_counter正しく関連付けられていないデータが関連付けられていませんか? 編集:問題を引き起こしてしまったメインファイルの一部を次に示します(まあ、それに最も貢献しています(メモリの使用が多すぎます))。 void display_state() { int i,j,index=0; short alive[256][2]; for(i=0;i<num_rows;i++) { for(j=0;j<num_cols;j++) { if(led_matrix[i][j]==1) { alive[index][0]=i; alive[index][1]=j; index++; } } } alive[index][0]=NULL; …