Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 6. Осваиваем все возможности микроконтроллера ATtiny231 3 477 Если выбран синхронный режим работы, то тактовый сигнал на выходе ХСК будет использоваться как тактовый сигнал передатчика. Прием кадра данных длиной от 5 до 8 битов Приемник начинает прием данных, если обнаруживает на входе кор ректный стартовый бит. После обнаружения стартового бита приемник последовательно считывает следующие за ним биты. Это полезно запомнить. Считывание битов — это проверка сигнала на входе через заданные промежутки времени, определяемые тактовым сигналом. В зависимости от выбранного режима (асинхронный, синхронный), в качестве тактового сигнала используется либо сигнал внутреннего гене ратора скорости передачи, либо сигнал со входа ХСК. Каждый считан ный бит помещается в сдвиговый регистр приемника. Считывание битов данных происходит до тех пор, пока не будет полу чен первый столовый бит кадра. Второй столовый бит приемником игнорируется. В момент, когда обнаружен первый стоповый бит, то есть когда принят полный кадр и в сдвиговом регистре находится принятое слово данных, содержимое сдвигового регистра переносится в буфер приемника. После этого принятый байт может быть прочитан процессором из этого буфера. В адресном пространстве ввода-вывода этот буфер высту пает в виде регистра UDR. Ниже (листинги 6.11 и 6.12) показан пример функции приема дан ных USART, основанной на опросе флага «Прием завершен» (RXC). Если используется формат кадра с числом разрядов меньше восьми, то при чтении полученных данных из регистра UDR старшие разряды будут замаскированы (то есть равны нулю). Перед использованием функций приема данных USART необходимо провести его инициализацию. Листинг 6.11. Пример на языке Ассемблер USART_Receive : ; Ожидаем пока данные будут получены sbis UCSRA, RXC rjmp USART.Receive ; Читаем данные из буфера и возвращаем их в регистре R16 ш г16, UDR ret
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==