|
pre
Эта прога в слэйве, ADuC
void SPI_Init(void)
{
SPE=1; // вкл. SPI, работа в качестве слэйва
SPR1=1;
SPR0=1;
}
start:
while(!ISPI); // ждем первого переданного байта
Temp_Priem[0]=SPIDAT; // записываем байт принятых данных
ISPI=0;
SBUF=Temp_Priem[0]; // передаем байт в ЭВМ, где его и анализируем
while(TI==0);
TI=0;
goto start;
Эта прога в мастере, ATmega128
SPI_Channels_Close(); // выставили в 1 вывод SS у слэйва /pre
E-mail:
info@telesys.ru
void SPI_Init(void)
{
SPCR = (1<
SetBit(DDRB,SS ); // Set SS to output
SetBit(DDRB,MOSI); // Set MOSI to output
ClrBit(DDRB,MISO ); // Set MISO to input
}
void SPI_MasterTransmit(unsigned char cData)
{
Pause(10);
SPI_Channel(0); // сбросили в 0 вывод SS у слэйва
Pause(10);
// Start transmission
SPDR = cData;
// Wait for transmission complete
while(!(SPSR & (1<
}
Ответы