|
プログラムはやまねこさんのを参考にして作りました。
/*温度センサLM35DZをつなげる(A/D変換)*/
#include <h8/reg3067.h>
#include <mes2.h>
#define VREF 5
int main(void){
unsigned int data,ondo;
volatile int r;
float v;
while(1){
data = 0;
r = ADCSR;
//読み込んでエンドフラグを0にする
sleep(10);
ADCSR = 0x20;
//0chで変換スタート
sleep(10);
while(!(ADCSR | 0x80)){;}
//最上位ビットに1が立ったら変換終了
sleep(10);
data = ADDRAH << 2;
//上位8ビット
data |= ADDRAL >> 6;
//下位2ビット
v = (float)data * 5 / 1024;
//電圧になおす
printf("%d\r", data);
printf("%d.%01d%01d[V]\r", (int)v,
(int)(v * 10) % 10,
(int)(v * 100) % 10);
printf("%d.%01d[deg]\r",
(int)(v * 100),
(int)(v * 1000) % 100 % 10);
sleep(1000);
}
}//main
ここにプログラムをおきます。拡張子をtxtからcに変換してお使いください。
プログラムは前回の電圧取り込みとほとんど一緒です。最後の電圧表示の部分で、小数点第二位まで表示しているところが異なります。


25度だそうです。・・・1月なのに・・・。
温度の正確性は別として、1秒ごとの表示更新でかなりずれがあるので、移動平均でもかけたほうがよさそうです。
また、本来はオペアンプとか使ったりするようです。しかしここでは、A/D変換できた、ということにとどめておこうと思います。
|