Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

396 Микроконтроллеры AVR от азов программирования... ♦ либо высокоимпендансное состояние (DDxn = 0, PORTxn = 0); ♦ либо состояние вывода логической единицы (DDxn = 1, PORTxn = 1). И в этом случае решение проблемы будет точно таким же, как в пред ­ ыдущем случае. В табл. 6.22 сведены все сигналы, определяющие режимы работы выводов порта. Конфигурирование выводов порта Таблица 6.22 DDxn PORTxn PUD (in MCUCR2) Ввод/вывод Нагрузка Комментарий 0 0 X Ввод Выкл. Третье состояние (Z — состояние) 0 1 0 Ввод Вкл. Рхп создает выходящий ток, если внешняя цепь замкнута на общий провод 0 1 1 Ввод Выкл. Третье состояние (Z — состояние) 1 0 X Вывод Выкл. Вывод низкого уровня (Приемник тока) 1 1 X Вывод Выкл. Вывод высокого уровня (Источник тока) Чтение значения на выводе порта Независимый от выбранного направления передачи данных (опреде ­ ляется DDxn) уровень логического сигнала на выводе порта может быть в любой момент прочитан при помощи разряда PINxn. Как показано на рис. 6.19, схема чтения бита PINxn содержит синхро ­ низатор. Синхронизатор позволяет избежать неопределенного результата при считывании уровня сигнала на выводе в том случае, этот сигнал изме ­ няет свои значения в момент прохождения фронта тактового сигнала. Но использование синхронизатора приводит к задержке при уста ­ новке сигнала на выходе. На рис. 6.20 показана временная диаграмма работы схемы синхронизации при чтении значения сигнала на выводе порта. Максимальное и минимальное значения задержки обозначены соответственно t pdmax и t pd>min . Рассмотрим один период тактового сигнала, начиная с заднего фронта первого импульса (см. рис. 6.20). Пока синхросигнал имеет низкий логи ­ ческий уровень, триггер закрыт. При высоком логическом уровне триггер прозрачен для входного сигнала, что обозначено в виде заштрихованной области на диаграмме, показывающей сигнал на выходе «триггера син ­ хронизации».

RkJQdWJsaXNoZXIy MTExODQxMg==