TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1118用430写的模拟spi的驱动程序 求大神看看哪里错了

采集到的值只跳变几次  而且值都不对  我用的单通道AIN3

int Read_ADS1118()
{
int dat;
CS_L;
SCLK_L;
while(P4IN&BIT3)
{
SCLK_H;
delay_ms(1);
SCLK_L;
delay_ms(1);
}
delay_ms(1);
dat=Write_ADS1118(0x74ec,1);
Write_ADS1118(0x0000,1);
CS_H;

return dat;
}

uint Write_ADS1118(uint dat,uchar mode)
{

union aa temp;
union aa temp1;

uchar i; if(mode == 1) dat |= 0x8000; //开始转换
temp.dat1[1] = dat;
temp.dat1[0] = dat;
SCLK_L;
CS_L;
P4DIR|=BIT3;
DOUT_H;
P4DIR&=~BIT3;
delay_ms(1);
for(i=0;i<32;i++)
{
if(temp.dat2 & 0x80000000)
{
DIN_H;
}
else
{
DIN_L;
}
temp.dat2 <<= 1;
temp1.dat2 <<= 1;
delay_ms(1);
SCLK_H;
if(P4IN&BIT3) temp1.dat2 |= 0x01 ;
delay_ms(1);
delay_ms(1);delay_ms(1);
SCLK_L;
delay_ms(1);delay_ms(1);delay_ms(1);delay_ms(1);delay_ms(1);
}

CS_H;
SCLK_L;
DIN_L;
P4DIR|=BIT3;
DOUT_L;
P4DIR&=~BIT3;

return temp1.dat1[1];
}

用的是连续转换模式

用的是1602显示读出的值  值总是不对  而且跳变几次就不动了 拔掉VDD的线再插上就又动几次  我实在是不知道哪的问题 

Martin:

这个程序在本论坛的置顶贴里面有:

http://www.deyisupport.com/question_answer/analog/data_converters/f/58/t/68454.aspx

honghong du:

回复 Martin:

有没有模拟SPI驱动的程序

赞(0)
未经允许不得转载:TI中文支持网 » ADS1118用430写的模拟spi的驱动程序 求大神看看哪里错了
分享到: 更多 (0)