Пример кода для интерфейса UART, на языке Бэйсик (компилятор Баском АВР): Сначала задаем частоту, на которой МК будут "общатся" между собой, командой $Baud 19200 Командой Print можно посылать данные, а команда Input отвечает за прием данных При этом ногу Rx одного МК нужно соеденить с ногой Tx другого МК, соответственно ногу Tx первого - с Rx второго Более детально можно прочитать в справочнике или в справке Баском АВР
Наверно предпочтительней SPI, он скоростной, а так по любому ннтерфейсу, лишь бы передать. По бейсику почти понятно, но работаю с Содвижн авр, , пишешь ПРИНТ Х1 и должно заработать, не понимаю как сделать чтобы перменнные х1,х2, х3 , х4 с одного МК другим МК воспринимались именно как х1 - х1, х2-х2, х3-х3, а не х2-х4 например из за каких нибудь збоев.
Ежели проблема в идентификации, то следует (наверное) обратить внимание не только на аппаратную сторону коннекта, а еще и на протокол обмена. Если не известно время передачи информации - спасет только применение определеных последовательных кодовых пакетов. Простейший {пауза}FF FF FF 55 X1 X2 X3 X4 ... или что нибудь аналогичное. Алгоритм приема приведенной последовательности примерно такой: 1-ждем сигнала в линии и занимаемся своими делами. 2-получив сигнал проверяем на FF если НЕТ то идем на 1 3-ждем не более определенного времени сигнала, если его нет то на 1 4-получив сигнал проверяем на ---если FF то на 3 ---если НЕ 55 то на 1 5-принимаем поочередно X1,X2,X3.... 6-возврат на 1.
п.с. прошу прощения у ГУРУ за простоту изложения не привязанную к конкретному языку.