[an error occurred while processing this directive] [an error occurred while processing this directive]
Последовательный вывод вручную
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Игорь А. 03 апреля 2002 г. 16:06

Нужно выдвинуть наружу байт в последовательном виде,
сопровождая его CLOCKAM'и. Это нужно делать программно,
не используя аппаратные SPI и т.д. Используется PIC.
Я делаю так:

bsf PORTOUT
btfss OUTDATA, 7
bcf PORTOUT
bsf CLOCK
bcf CLOCK

bsf PORTOUT
btfss OUTDATA, 6
bcf PORTOUT
bsf CLOCK
bcf CLOCK

и так 8 раз. По размеру памяти программ запас большой,
поэтому можно без всяких циклов.
Правильный ли это способ вообще? Можно ли придумать,
как сделать это быстрее? В данном случае главное - скорость.
Если возможно сократить процедуру вывода бита даже
на одну команду, это уже интересно. При этом не должна
возникать ситуация "чтение-модификация-запись" для
остальных разрядов порта. Также интересует обратная
процедура - прием байта.

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

Ответы



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

E-mail: info@telesys.ru