No.30232 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2003/5/14 16:44:08 发贴者IP:218.12.255.17 标题:guest:关于MSC1210的ADC问题? 摘要:No.30232关于MSC1210的ADC问题? 我参照着示例对MSC1210的ADC编写了驱动,但是只有温度的转换还算正常(维持在20度左右,室内温度)。但是当我把这个程序的ADMUX换成AIN0时,输出的结果就不正确了,无论我连地还是3V电源,输出结果都是4.999XXXXX,后三位起变化。对于数据的处理,我是读10遍寄存器的值后(每遍都乘系数5/2^24),再将平均值除10,的出的结果显示出来。 是否我的初始化有问题?请各位帮忙! 程序如下: #include <REG1210.H> #include <stdio.h> #include <stdlib.h> //此库不知有何作用? #include <math.h> #define BYTE unsigned char #define WORD unsigned int #define LSB 298.0232e-9//基数LSB = 5.0/2^24 void UARcon(void) //配置串口,11.0592,19200 { TR1=0; TH1=0xfd; TL1=0xfd; SCON0=0x52; TMOD=0x20; PCON=0x80; TR1=1; } long read(void)//读ADRES寄存器,返回该值。 { long g_inbuf; g_inbuf=ADRESH; g_inbuf=g_inbuf < <8; g_inbuf=g_inbuf+ADRESM; g_inbuf=g_inbuf < <8; g_inbuf=g_inbuf+ADRESL; return(g_inbuf); } /* MAIN PROGRAM */ void ......
>>返回讨论的主题
|