本帖最后由 sunmeat 于 2014-9-11 15:57 编辑
void GET_LTC2440(void)
{
unsigned int i;
long int m,n;
while(BUSY){;}
CS=0;
SCK=0;
EOC=SD0;
SDO=0;
delayus();
SCK=1;
delayus();
SCK=0;
delayus();
DMY=SD0;
SDO=1;
SCK=1;
delayus();
SCK=0;
delayus();
SIG=SD0; //SIG: AD值的符号位(1正0负)
SCK=1;
delayus();
SCK=0;
delayus();
ADC_24=0X000000;
for(i=0;i<24;i++)
{
ADC_24=ADC_24<<1;
if(SD0){ADC_24+=1;}
SCK=1;
delayus();
SCK=0;
delayus();
}
for(i=0;i<5;i++) //再输出5个脉冲,丢弃最后5个Bit
{
SCK=1;
delayus();
SCK=0;
delayus();
}
CS=1;
}
void LTC2440_INIT(void)
{
DDRA|=0x05; //SCK CS为输出 BUSY SM0为输入
PORTA.1=1; //上拉有效
CS=1;
PORTA.3=1;
SCK=0;
}
|