三星单片机10位 AD转换
三星8位单片机 有10位AD转换 转换结果存放在ADDATAH ADDATAL 中 ,其中ADDATAH存放高8位 ADDATAL存放低两位 现在疑问 低两位存放在ADDATAL中是以xx000000 形式存在还是以 000000xx的形式存在呢我现在的形式是:
#define Uint unsigned int
#define Uchar unsigned char
#define Ulong unsigned long
.
.
.
Uchar i,h
Uint ADDATA;
ADCON = 0x77; //开始转换,ad7通道,
while(!GET_BIT(ADCON,bit3)); //转换完成?
i = ADDATAH;//高八位
h=ADDATAL;// 低两位
ADDATA=((Uint)i)<<2+h;//把i强制转换成Uint类型 //???这种做法符合语法吗
按照这种方式能不能得到10位的AD转换数据呢 AdcData=( (ADDATAH<<2)+ADDATAL ); 回复【1楼】halloween
-----------------------------------------------------------------------
谢谢 u8 ADC_8Bit(u8 ch)
{
ADCON = (ch << 4) | 0x04;
NOP;NOP;
ADCON |= 0x01;
do
{
NOP;NOP;
}while((ADCON & 0x08) == 0);
return ADDATAH;
}
u16 ADC_10Bit(u8 ch)
{
u16 ad_value;
ADCON = (ch << 4)| 0x04;
NOP;NOP;
ADCON |= 0x01;
do
{
NOP;NOP;
}while((ADCON & 0x08) == 0);
ad_value = ADDATAH;
ad_value <<= 2;
ad_value += ADDATAL;
return ad_value;
}
关于三星单片机的问题可以到sambbs.com技术论坛交流
页:
[1]