こんばんわ
としぶぅ~です。
今日はADを行う方法を考えていきます。
まず、テンプレートで4msごとに5分割で処理ができるようにしてあります。
ソールコードは下記(main.cの中身)
//無限ループ
while(1){
if(tmr_4ms_up == 1){
tmr_4ms_up = 0;
switch(tmr_cnt_up){
case 0: ad_data = ad4(); //処理1
break;
case 1: //処理2
break;
case 2: //処理3
break;
case 3: //処理4
break;
case 4: //処理5
break;
}
}
}
現在 tmr_cnt_upの値が "0" の時にADするようになっています。
(マーカーの部分)
つまり、4ms x 5 = 20msに1回ADするようになります。
プログラムの仕様として
1.ADは8bitでやります。
10bitでやろうとおもったけど、まず下位1bitはかなりゆれるので実質
9bitになるかなと思うのでとりあえず8bitでやります。
2.AD値の平均はとりません。
20msごとにADやるので平均をとらないで前回のAD値と違っていた場合の
みLCDの方に表示するようにします。
これで、多分平均とるのと同じ状態になると思います。
3.表示は"case 1:"の部分で行う。
こんな感じでうまく動くんではないでしょうか・・・多分^^;
ちょっとコーディングして動作の確認してからコードは貼り付けます。
明日はやれるかな~。。。
ちょっとやれなかったら金曜日に!
ということで、今日はこの辺で。
ではおやすみなさい~^^/