対数計算をさせるために math.hをincludeして見ました。
下記のプログラムです。
while(1){
v1 = 0;
v2 = 0;
n1 = 0;
n2 = 0;
// for( ad_cnt = 0; ad_cnt < 10; ad_cnt++){
adinsel=0B10000000; //AN4
adcon0=0b00000001; //Start AD
while(adcon0 & 1){} //wait AD finish
n1 = (ad0 & 0x03ff);
adinsel=0B10000001; //AN7
adcon0=0b00000001; //Start AD
while(adcon0 & 1){} //wait AD finish
n2 = (ad1 & 0x03ff);
// }
v1 = AVCC/1023 * n1;
y1 = 20 * log(v1);
BarDisp_v1(0, 2, y1, 65);
v2 = AVCC/1023 * n2;
y2 = 20 * log(v2);
BarDisp_v2(1, 2, y2, 65);
}
コンパイルでエラーは出ずmotが出来ましたので、取り合えず書き込んで見ました。LCDの表示を見ているとどうやら対数計算の結果を表示している様です。
ここで問題はLCDのバー表示を対数目盛りの表示にする必要があります。これ、結構大変そうです。1カラムは5本の縦線で構成されています。リニア表示では単に割り算で1本の縦線の数値を計算できましたが、対数ではこの縦線まで分解能を上げる表示は、、、、カラム単位で表示がいいところです。13カラムをー60dB~0dBまで振り当てる必要がありそうです。
それとも13カラム x5=65本の縦線に振り当てるのがいいのか、でもこれだと、数値のケース分けが大変そう。でもこの方がバーの動きはスムーズになりそうですね。
既にmot ファイルの容量は24K、この振り分けを入れるとオーバーするかも?、、、、