il-2 (22.01.2008 11:16, просмотров: 113) ответил URANstin на ATmega8 SPI ADS1242, Работа с SPI
Вот работающие процедурки, можешь по ним постигать что и как. 
//Send and Receive Data to/from ADC
#pragma optimize=3
uchar PutGetADC(uchar byte)
 {
 uchar res=0x01;
 do
  {
  SET_PORT(CLK);		//Rising Clock Edge, Out Data From ADC to DTO pin
  if (byte&0x80) SET_PORT(DTI); else { CLR_PORT(DTI); __no_operation(); }	//Set Data to Send to ADC
  CLR_PORT(CLK);		//Falling Clock Edge, Store Data to ADC from DTI pin
  byte<<=1;
  res<<=1; if (GET_PORT(DTO)) res|=0x01;
  } while(SREG_Bit0==0);
 return(res);
 }
//Write/Read ADC Register
uchar WRegADC(uchar wregcmd, uchar byte)
 {
 uchar cRet;
 CLR_PORT(CS);
 PutGetADC(wregcmd);		//WREG or RREG Command
 PutGetADC(0);			//Write/Read 1 byte
 if (wregcmd<0x20) DelayADC(6);	//Delay >50CLK for RREG Command
 cRet=PutGetADC(byte);
 SET_PORT(CS);
 return(cRet);		//Write byte or Read
 }