としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC16F88を動かす。。。その13(今日はADのやり方考える)

2012-09-19 22:26:26 | PIC16F88

こんばんわ
としぶぅ~です。

今日は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:"の部分で行う。

こんな感じでうまく動くんではないでしょうか・・・多分^^;

ちょっとコーディングして動作の確認してからコードは貼り付けます。
明日はやれるかな~。。。
ちょっとやれなかったら金曜日に!

ということで、今日はこの辺で。

ではおやすみなさい~^^/