Здравствуйте! Начал осваивать МК. Нужно передать данные от одного МК другому по SPI. МК atmega 128. Взял готовую реализацию SPI из datasheet. Вроде ничего сложного. Данные как бы передаются, а в порт ничего не выводится. Подскажите, пожалуйста, неучу, где ошибка.
Инициализация мастера
Код
void SPI_MasterTransmit()
{
unsigned char cData;
/* Запуск передачи данных */
cData = 0x55;
SPDR = cData;
/* Ожидание завершения передачи данных */
while(!(SPSR & (1<<SPIF)))
;
}
void main(void)
{
PORTB=0x00;
DDRB=0x07;
SPCR=0x50;
SPSR=0x00;
SPI_MasterTransmit();
}
Инициализация слэйва
Код
unsigned char SPI_receive(void)
{
unsigned char data;
data = SPDR;
while(!(SPSR & (1<<SPIF)));
return data;
}
void main(void)
{
PORTB=0x00;
DDRB=0x08;
PORTE=0x00;
DDRE=0xFF;
SPCR=0x40;
SPSR=0x00;
PORTE = SPI_receive();
}