Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача данных по SPI
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Васька
Здравствуйте! Начал осваивать МК. Нужно передать данные от одного МК другому по 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();
}
XVR
В слэйве надо data = SPDR; поставить после while(!(SPSR & (1<<SPIF)));
Васька
Заработало! Спасибо sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.