ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

R8C/ M12A(18)

2015年09月05日 | 日記

対数計算をさせるために 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、この振り分けを入れるとオーバーするかも?、、、、

コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする