Помогите совладать с обменом по SPI
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
OIS 28 января 2005 г. 11:34
|
|
|
|
Пытаюсь наладить обмен между двумя мегами по SPI интерфейсу. Мега128 конфигурируется как мастер. Инициализация ее выглядит так:
DDRB = (1<
SPCR = (1< SPSR |= (1<
IOReg = SPSR;
IOReg = SPDR;
и работает на 16МГц.Вторая Мега8 инициализируется как слейв следующим образом:
DDRB |= (1<и работает на 8-и МГц.
В слейве для определения момента окончания приема используется оператор вида:
while(!(SPSR & (1<но почему-то он никогда не завершается, т.к. после него у меня должен зажечься индикатор - а он не зажигается. Хотя вроде бы обмен по SPI идет, т.к. если отключаю слейва то принимаю мастером все время FF. А если слейв висит то иногда возвращает то что отправлено. В чем тут может быть причина. Помогите, плз, не дайте пропасть!
Составить ответ
|||
Конференция
|||
Архив
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru