どこでデータが欠落するのか、いろいろ調べようと思って
ます。そのために、LCDデバックモニターを作って、みようと思
います。部品を注文しましたので、届くのをまちます。
デバッグモニターの制作と平行して、データー受信を
リングバッファーを使ったプログラムに変更しみようと
思います。
当初は、リングバッファーを使ったプログラムにする予定で
したが、リングバッファーの理解がいまいちで、コーデング
できませんでした。その一番の原因は、構造体とポインタの
理解ができてないことでした。
ネットには、リングバッファーを使ったプログラムが沢山ある
のですが、そのほとんどが、構造体とポインタという、私が
一番苦手な手法を使ってありました。
いろいろあさっていると、構造体とポンタを使わないプログラム
を使って解説しているHPを見つけました。
Elementary data structures - Queue
このHPでやっと、リングバッファーの仕組みが理解で
きました。
また、このプログラムを組むにあたって、割り算のあまりを
求める、計算をしなければなりません。この計算に、結構
な時間がかかります。一般的には、計算の時間を短縮す
るために2のN乗の数を使うそうです。2のN乗の数を使う
ことで、割り算のあまりを出す計算を、X & (N-1)とする
ことで可能にできるそうです。これで、飛躍的に計算を早く
できると書いてあるHPにも出会ました。この2のN乗の大き
さをバッファーの大きさにするそうで、計算時間の短縮がで
きます。
この & を使った計算方法が、
%(剰余)の最適化について
というHPに分かり易く書いてありました。
ということで、リングバッファーを使ったプログラムを
コーデングしていきます。