忍者ブログ

Fグループ電子工作講座

秋月電子SH7125ボードで始めるマイコン開発

AD変換値をシリアル通信でPCへ送る

関連:シリアル通信関連記事一覧

前回のシリアル送信プログラムとAD変換を組み合わせて遊んでみます。

前回のプロジェクトに
 AD変換設定:ADConv.cADConv.h
 タイマ設定:intCMT.cintCMT.h
を追加してください。
 CMT0_INT_CMI
 CMT1_INT_CMI
をintprg.cへ登録することもお忘れなく。

50ms周期でAD変換の結果をシリアル通信で出力させます。

<設定>
#include "iodefine.h"
#include <stdio.h>
#include "ADConv.h"
#include "intCMT.h"
#include "intSCI.h"

void main(){
    unsigned long timer;
    short data[8];
    int i;
    char trans_buf[255];

    init_ADC();                        //AD変換機能の初期化
    init_CMT0(1);                    //タイマ機能の初期化
    init_SCI1();                    //シリアル通信1の初期化

    timer=getsystime()+50;
    write_sci1("sh7125 conected\n");

    while(1){                       //無限ループ開始
        check_ai();                    //AD変換を実行
        if(getsystime()>timer){        //50ms周期で実行
            timer=getsystime()+50;

            for(i=0;i<8;i++){
                data[i]=get_ai(i);    //AD変換の結果を格納
            }//end for

            sprintf(trans_buf,"%04d,%04d,%04d,%04d,%04d,%04d,%04d,%04d\n"
                ,data[0]
                ,data[1]
                ,data[2]
                ,data[3]
                ,data[4]
                ,data[5]
                ,data[6]
                ,data[7]
            );

            write_sci1(trans_buf);    //送信

        }//end 50ms
    }//end while
}//end main

すべて今まで使ってきた関数なので詳細な説明は割愛します。
これでAD変換の結果をPCで確認することができます。
PR

コメント

プロフィール

HN:
ぼんどF博士
性別:
男性

最新コメント