Применение USART: прием и передача данных, опишите алгоритм приема через прерывание. — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Применение USART: прием и передача данных, опишите алгоритм приема через прерывание.

2022-10-04 31
Применение USART: прием и передача данных, опишите алгоритм приема через прерывание. 0.00 из 5.00 0 оценок
Заказать работу

 

Передача данных — передатчик USART

Передатчик USART включается, если установлен бит разрешения передачи (TXEN) регистра UCSRB. Когда передатчик включен, стандартная функция вывода TxD отключается, а включается альтернативная функция. Теперь это выход передатчика последовательного канала USART.

Скорость передачи информации, режим работы и формат кадра должны быть установлены однажды, но до того, как произойдет первый сеанс передачи информации. Если выбран синхронный режим, то назначение вывода ХСК также изменится, и он будет использоваться как выход тактового сигнала передачи.

 

Прием данных — приемник USART

Приемник USART включается при установке в единицу флага разрешения приема (RXEN) в регистре UCSRB. Основная функция вывода RxD заменяется альтернативной, когда приемник включен. Теперь это последовательный вход приемника.

Перед тем, как приемник будет использован, должны быть установлены:

- скорость передачи информации;

- режим работы;

- формат кадра.

Если выбран синхронный режим работы, то тактовый сигнал на выходе ХСК будет использоваться как тактовый сигнал передатчика.

Для приема через прерывания должен быть установлен флаг I (команда sei).

В общем виде: Когда на микроконтроллер поступает прерывание, МК передает контроль на строку с кодом прерывания (допустим для прерывания 0x04 МК передаст контроль на 0x04 строку кода (аналогично выполнению rcall 0x04)). В этой строке ожидается передача управления пользовательскому обработчику прерывания. После описания алгоритма обработки прерывания должна следовать команда reti - возврат управления из прерывания.

Конкретно для приема через USART существуют специальные прерывания 0x0007-0x0009.

17. Система прерываний МК ATtiny2313. Примеры применения прерываний, приведите 2-3 примера (код писать не нужно).

 

Примеры:

1. Банальный будильник. Правильно настроив счетчик можем организовать пробуждение микроконтроллера через N времени по прерыванию 0x000С.

2. Принимаем данные через USART, прерываем выполнение программы МК для считывания данных с порта по прерыванию 0x0007.

3. Придумай что-нибудь сам:)

 

Последовательный интерфейс USI. Построение многопроцессорных систем, подключение периферийных устройств (микросхемы памяти, АЦП, ЦАП и пр.) через периферийный интерфейс SPI (один из режимов работы USI).

 

 Универсальный последовательный интерфейс является основным средством последовательной передачи данных. Используя минимальное программное обеспечение, интерфейс USI позволяет достигать значительно более высоких скоростей передачи информации и использует меньше программной памяти, чем решения, основанные только на программном способе формирования канала связи.

 

Интерфейс USI имеет следующие основные особенности:

➢ двухпроводный синхронный режим передачи данных (Master или Slave, fSCLmax = fCK/16);

➢ трехпроводный синхронный режим передачи данных (Master, fSCKmax = fCK/2, Slave fSCKmax = fCK/4);

➢ прием данных с использованием прерывания;

➢ автоматическое пробуждение из режима Idle;

➢ в двухпроводном режиме: пробуждение из всех режимов сна, кроме Power-down;

➢ проверка стартового условия в двухпроводном режиме с возможностью вызова прерывания.

ПРИМЕРЫ ПОСТРОЕНИЕ МНОГОПРОЦЕССОРНЫХ СИСТЕМ, ПОДКЛЮЧЕНИЕ ПЕРЕФЕРИЙНЫХ УСТРОЙСТВ С ПОМОЩЬЮ SPI

 

 

 

 

 

 

 

19. Структура программы для МК (таблица векторов прерываний, подпрограмма инициализации, основной программный цикл, обработчики прерываний).

 

Вариант 1:)

Таблица векторов прерываний это первые 19 байт программы. Это значит, что при некотором прерывании контроль будет передан соответствующему адресу в начале программы. Например при переполнении WDT контроль будет передан по адресу 0x12 (фактически rcall 0x12). Также в момент передачи контроля на стек будет записан адрес возврата, по которому контроль вернется после выполнения команды RETI.

Основной программный цикл - это цикл, который запускается после RESET’а. RESET – самое первое прерывание, которое вылетает, когда контроллер включается или когда на ногу RESET приходит 1. Цикл реализуется обычно командой rjmp в самом начале программы. Эта команда передает управление дальше по программе (аналог main()).

Обработчики прерываний – процедуры, которые заканчиваются командой reti. Например:

Таблица прерываний:

...

reti

rjmp OBRABOTCHIK

reti

...

...

OBRABOTCHIK:

Код обработчика прерывания

reti

Такая структура позволяет задавать “функции” которые выполняются по прерываниям.

 

Вариант 2:)

Ниже приведена типичная структура для программ AVR ассебмлера.

* Комментарии, заголовок где идёт описание, копирайты и прочая погань.

* Заголовочная информация, определение констант, подключение внешних файлов, определение макросов и др.

* Код начала программы

* Основная структура программы

Заголовочная информация

В заголовке мы указываем включаемые файлы, тип устройства, определения имён для регистров, определение констант.

Тип процессора определяется подключаемым файлом, в этом файле прописаны адреса регистров ввода вывода, прерываний, расположение встроенной памяти SRAM и EEPROM. Файлы называются по имени чипа, например для Atmega8535 - m8535def.inc.

В заголовочном файле также определены регистры XH, XL, YH, YL, ZH and ZL. Они нужны для определения частей 16-ти разрядных указателей X, Y or Z. Все порты так же определены в данном файле, например PORTA представлено его HEX значение. Имена портов соответствую описаниям в Datashet. Так же определены единичные биты портов. Например для доступа 5 го бита порта C используется PINC5, и так же соответствует фирменному описанию.

Другие вещи которые должны быть включены в заголовке программы это определение регистров, например

.DEF FLAJOK = R16; переименование регистра

Там же, в заголовке программы определяются используемые константы Например частота тактового генератора, что позволит при изменении параметров тактового генератора не менять все части программы

.EQU fq = 4000000; частота тактового генератора

Код начала программы

В начале кода по адресу 0x0000 находиться вектор сброса, т.е. место куда перейдёт программа после включения питания или сигнала RESET. Сразу за этим адресом с адреса 0x0002 начинается таблица векторов прерываний. Выглядит это приблизительно так

.CSEG

.ORG $0000

       rjmp Main; Вектор сброса

       reti; Прерывание 1

       reti; Прерывание 2

 


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.