|
最近在调一个程序,用max1148做程序采集!可是怎么调读出的数据都是不对,程序如下,帮我看看程序有什么问题吗?
//定义与MAX1148BEUP的接口 sbit DOUT = P1^4; sbit SSTRB = P1^3; sbit DIN = P1^2; sbit nCS = P1^1; sbit CLK = P1^0;
//MAX1148采样程序 unsigned int MAX1148AD_Sample(unsigned char Ctrl_Cmd) { unsigned char i,tmp_data; unsigned int adc_value = 0; tmp_data = Ctrl_Cmd;
nCS = 0; //写控制字 for(i=0; i<8; i++) { DIN = tmp_data & 0x80; CLK=1; tmp_data <<= 1; CLK=0; } // _nop_(); // _nop_(); while(!SSTRB); //等待SSTRB为高
for(i=0;i<16;i++) { adc_value <<= 1; CLK = 1; adc_value |= DOUT; CLK = 0; } nCS = 1;
return(adc_value & 0x3FFF); }
我用的是ch2通道,采取单通道采样,控制字是0x9E!
|
|