Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Анонсы журнала "Лаборатория электроники и программирования" Новые статьи 21 номера


7. Программирование на языке С на примере микроконтроллера ATmega168.  Работа с UART. Передача по прерываниям.

В  журнале (№15 статья 1) были приведены примеры программ передачи данных по UART с использованием опроса флагов прерываний. В данной статье приведен пример передачи по прерываниям. Данный способ сложнее в реализации, но позволяет передавать данные максимально быстро и освободить время для выполнения других задач.

Для передачи данных создадим собственно массив для данных, счетчик передаваемых байт и флаг окончания передачи. Массив заполним некоторыми тестовыми данными (выбраны отображаемые символы для удобства просмотра). Для начала и окончания процесса будем разрешать и запрещать прерывания «UDRE».

Пример программы приведен ниже. Программа написана для среды разработки ATMEL Studio® [1].

 

8. Программирование на языке С на примере микроконтроллера ATmega168.  Работа с UART. Передача по прерываниям с использованием двух буферов.

В  следующем примере рассмотрим передачу данных по UART с использованием двух буферов. Когда один буфер данных передается, другой заполняется новыми данными. Потом буферы меняются местами. Такой способ хорошо подходит для потоковой передачи данных (например, оцифровка звука и передача цифровых данных по UART).

Для управления буферами создадим переменную-указатель на буфер и ей будем присваивать адрес нужного буфера.

Пример программы приведен ниже. Программа написана для среды разработки ATMEL Studio® [1] (изменения по отношению к предыдущему примеру выделены серым цветом).

Результат работы программы:

Начало передачи 1

0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?

Конец передачи 1

Начало передачи 2

PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_PQRSTUVWXYZ[\]^_

Конец передачи 2

 

 

9. Макетная плата драйвера ШД «170». Часть 2.

10. Программирование на языке С на примере микроконтроллера ATmega168.  Управление биполярным шаговым двигателем.

Биполярные шаговые двигатели в отличие от униполярных имеют более сложную схему управления, но более высокую удельную мощность.  Рассмотрим пример управления шаговым двигателем «42BYGH47-401A» [7] с помощью драйвера «L6208» [6].

                Для управления используется 6 цифровых сигналов. Практически многие из них могут быть установлены в определенное неизменное состояние, тогда число сигналов управления от микроконтроллера сократится. Минимально будет один сигнал – «сделать шаг».

Таблица подключений платы «170» к плате «150»:

Плата «150»

Плата «170»

X1_EXT.3 (PD2)

X2.1 (CLOCK)

X1_EXT.4 (PD3)

X2.3 (CW_CCW)

X1_EXT.5 (PD4)

X2.5 (HALF_FULL)

X1_EXT.6 (PD5)

X2.7 (CONTROL)

X1_EXT.7 (PD6)

X2.9 (RESET)

X1_EXT.8 (PD7)

X2.11 (EN)

 

 

X4_EXT.4 или X4_EXT.5 (GND)

X3 (GND) или X4 (GND)

X4_EXT.2 (VCC=3,3В) или X4_EXT.3 (VCC=5В)

X3 (+V_LOG) или X4 (+V_LOG)

 

                Дополнительно на разъем X1 платы «170» необходимо подать питание +12В для работы шагового двигателя.

 

...

http://journal.electroniclab.ru/ 

 

 


В избранное