なんとかなった。
困ったこと
Arduinoで配列を処理する関数を作るとき、関数内でsizeof(配列)としても配列数が上手く取得できません。
例えば引数に配列A,配列Bの2つを入れ、配列Aの操作結果を配列Bに格納しようとしたとき、5番目以降の処理が行われないという問題が発生します。
解決方法
Arduinoは関数内で引数で受け取った配列の要素数をカウントすることができないようです。
理由は内部的に配列ではなく配列のアドレスを渡しているためらしいです。
解決方法は関数を作る際に引数を追加し、配列のサイズを指定するようにすればOKです。
Arduinoのこういうところで困ったら
コメント欄やTwitterにてアドバイスをいただきました。(ありがとうございました)
ArduinoはC/C++をベースとしているので、Arduino関連で検索してわからなかった場合は、CやC++を含んで検索しC言語系での用法や挙動を調べると解決のヒントを得られることが多そうです。
↧