本帖最后由 cn_x 于 2013-7-18 14:33 编辑
WORD AdcReadChannel(BYTE channel)
{
WORD ctrWord=0;
WORD result=0;
BYTE i;
_CS_AD = 0;
Wait2us();
_CS_AD = 1;
Wait2us();
_CS_AD = 0;
if(channel >= 4)
{
channel -= 4;
}
ctrWord= ((channel<<7) | 0b0011110001110001) << 2;
Wait2us()
for(i = 0;i<16;i++)
{
if(ctrWord & 0x8000)
{
SDO = 1;
}
else
{
SDO = 0;
}
Wait2us()
SCK = 0;
Wait2us()
ctrWord <<= 1;
SCK = 1;
Wait2us()
result <<= 1;
if(SDI)
{
result |= 1;
}
}
Wait2us()
SCK = 0;
Wait2us()
_CS_AD = 1;
return result;
}
使用的是外部4.096V电压基准
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这段代码没有问题
一周热门 更多>