|
Проблему связи Меги128 - мастера и Меги8 - слейва решил реализацией мастера софтверно. У слейва SPI аппаратный. Теперь мастер передает команды слейву и тот их воспринимает правильно. Дальше слейв выполнив запрошенную функцию должен вернуть результат в виде двухбайтного числа. Признаком что от слейва передается нужная информация является наличие в старшем разряде первого байта 1. Т.е. для отлавливания этого факта делаем примерно следующее:
do {
b=SwopSPI(0);
} while (!(b&0x80));
после этого принимаем второй байт
с=SwopSPI(0);
У слейва у которого SPI аппаратный процедура отдачи инфы выглядит следующим образом: В таком случае мастер почему-то от слейва получает все время 0х8000. В чем тут причина? Помогите разобраться плз!!! Нахожусь в состоянии отмахивания шашкой, так что аппаратно чего-то переделывать очень нежелательно ;-)
E-mail:
info@telesys.ru
SPDR=bs; // байт с 1 в 8-м разр
while(!(SPSR&(1<
Ответы