|
Для передачи пакета мастер выставляет на SS "0" и делает паузу(величина паузы зависит от частоты опроса SS слейвом), slave постоянно опрашивает состояние SS(по таймеру или в основной программе это уж кому как...) обнаружив переход SS в "0" слейв устанавливает указатель приемного буфера на начало буфера.
Обработчик прерывания записывает данные в буфер(по адресу указанному в указателе премного буфера с автоинкрементом последнего) после приема заданного к-ва байт выставляет флажек.
Если во время обмена на SS выставляется 1 - ошибка.
Прием данных от слейва приемерно также.
Все операции начинаются с посылки коммандного пакета следующего содержания(размер известен!):
1 - адрес
2 - команда/тип следующего пакета/прием-передача итд
3 - CRC
Таким образом к-во принимаемых/предаваемых данных всегда известно заранее.
E-mail: info@telesys.ru