関連:
シリアル通信関連記事一覧前回のシリアル送信プログラムとAD変換を組み合わせて遊んでみます。
前回のプロジェクトに
AD変換設定:
ADConv.c、
ADConv.h タイマ設定:
intCMT.c、
intCMT.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で確認することができます。