2 rezident: предлагаю продолжить обсуждение процесса передачи с прошлой страницы
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Сергей Борщ 14 декабря 2004 г. 15:10

Мысль, предложенная в Вашем посте по ссылке использовать режим Listen действительно очень интересная. Позволяет обойтись только UART. Возьму на заметку.

По второй части дискуссии: Не всякая задача позволяет сформировать пакет сразу целиком: например, чтобы вывести данные их надо найти во внешней флешке. Таким образом данные будут "выстреливаться" по мере их обнаружения пакетами разной длины и через случайные промежутки времени. Или вывод отладочной информации из разных частей программы - тоже пакеты данных произвольной длины и в случайные моменты времени. Решение через управление IE (http://www.telesys.ru/wwwboards/mcontrol/867/messages/145529.shtml) позволяет докладывать данные в буфер совершенно не заботясь - есть там уже данные или нет, начата передача или нет. Если надо, передача начнется автоматически, если она уже идет - данные вылезут своевременно. Можно и реализацию протокола в это прерывание повесить.
В целом преимущества такие:
1) Если лишний раз установить IE, когда передача идет - ничего плохого не произойдет.
2) Проверка "заканчивать/продолжать" происходит сразу после отправки байта на передачу а не после его передачи, т.е. на один байт раньше и позволяет (в случае большой загрузки системы более высокоприоритетными прерываниями) использовать время передачи этого байта на эту проверку, т.е. уменьшается вероятность пауз между байтами.
3) Требуется на одно прерывание меньше, т.е. экономим процессорное время.

P.S. У меня была одна задача (обмен по SPI), когда до возникновения прерывания было неизвесно - надо будет передавать или нет. Вот там если данных для передачи нет надо было сбросить IE и установить IFG вручную чтобы прерывание вызвалось когда будет необходимость и взведется IE.

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

Ответы



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

E-mail: info@telesys.ru