Проблему связи двух Мег по SPI решил! Спасибо всем погавшим советами, но проблемы снова есть...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено OIS 03 февраля 2005 г. 10:58

Проблему связи Меги128 - мастера и Меги8 - слейва решил реализацией мастера софтверно. У слейва SPI аппаратный. Теперь мастер передает команды слейву и тот их воспринимает правильно. Дальше слейв выполнив запрошенную функцию должен вернуть результат в виде двухбайтного числа. Признаком что от слейва передается нужная информация является наличие в старшем разряде первого байта 1. Т.е. для отлавливания этого факта делаем примерно следующее:
do {
b=SwopSPI(0);
} while (!(b&0x80));
после этого принимаем второй байт
с=SwopSPI(0);

У слейва у которого SPI аппаратный процедура отдачи инфы выглядит следующим образом:
SPDR=bs; // байт с 1 в 8-м разр
while(!(SPSR&(1<SPDR=cs; // второй инф. байт

В таком случае мастер почему-то от слейва получает все время 0х8000. В чем тут причина? Помогите разобраться плз!!! Нахожусь в состоянии отмахивания шашкой, так что аппаратно чего-то переделывать очень нежелательно ;-)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru