вторник, 18 июня 2019 г.

Настройка IDE Arduino для генерации листинга на ассемблере

Порой возникает необходимость в изучении кода, генерируемого компилятором. Это помогает понять, что получается "на выходе" при использовании тех или иных функций, приемов, алгоритмов. Существуют специализированные инструменты - дизассемблеры, преобразующие машинный код в текст на языке ассемблера, но это в основном платные программы. Мне же в большинстве случаев вполне хватает результатов программы avr-objdump, которой и посвящена эта публикация.

четверг, 13 июня 2019 г.

Прерывания в Ардуино. Часть 2

Прерывания в Ардуино. Внешние прерывания, PCINT, WDT

Продолжаем тему использования прерываний в Ардуино. В предыдущей публикации мы познакомились с функциями среды Ардуино для работы с внешними прерываниями. Сегодня рассмотрим какие еще прерывания присутствуют в AVR микроконтроллерах и разберем несколько примеров их использования. А начнем мы с самого начала - с таблицы векторов прерываний.

вторник, 21 мая 2019 г.

Прерывания в Ардуино. Часть 1

Прерывания в Ардуино. Внешние прерывания

Долго я откладывал эту тему. И все-таки пора рассмотреть работу с прерываниями в Ардуино: что они из себя представляют, зачем нужны и как их использовать. Информации довольно много, поэтому в данной статье я расскажу о внешних прерываниях без углубления в теорию. А следующую публикацию посвящу более детальному рассмотрению системы прерываний AVR микроконтроллеров.

воскресенье, 12 мая 2019 г.

Бесполезная коробка на ATmega328P


Бесполезная коробка на ATmega328P

Последнее время у меня в блоге одни микроконтроллеры, программаторы и загрузчики. Надо бы отвлечься и написать о чем-то, что можно собрать своими руками. Думаю, "бесполезная коробка" отлично подойдет для этого: эта забавная поделка обязательно понравится и ребенку, и взрослому, а сделать ее под силу каждому.

среда, 24 апреля 2019 г.

Восстановление фьюзов ATtiny85

Разблокировка вывода Reset на ATtiny85

Фьюзы микроконтроллера отвечают за его предварительную настройку. Они позволяют указать источник тактирования, разрешить либо запретить работу сторожевого таймера, схемы контроля питания и т.д. Одни из них не столь принципиальны для работы микроконтроллера, другие, напротив, весьма критичны и их неосторожное изменение может привести к неприятным результатам. К примеру, фьюз RSTDISBL (External reset disable) позволяет запретить внешний сброс, при этом освободившийся от данной функции вывод микроконтроллера можно использовать как дополнительный цифровой пин. Однако вместе с входом внешнего сброса вы потеряете и возможность что-либо сделать с микроконтроллером, используя ISP программатор. Помочь в этой ситуации может высоковольтный программатор: он не использует сигнал сброса и запрограммированный RSTDISBL для него не помеха (к слову он и стоит значительно дороже внутрисхемного). Но есть и другой способ восстановления фьюзов ATtiny85, более доступный, о нем я и хочу рассказать.

понедельник, 4 марта 2019 г.

Энергопотребление ATmega328P при тактировании от внутреннего RC-генератора

Сегодня я решил провести небольшой эксперимент по снижению энергопотребления микроконтроллера ATmega328P - именно он используется в большинстве популярных плат Ардуино. Я настроил его на тактирование от внутреннего RC-генератора и вынул из Ардуино, чтобы уменьшить  энергопотребление. О том, что из этого получилось, читайте далее.

воскресенье, 3 февраля 2019 г.

Обвязка ATmega328P

Типовая схема включения любого микроконтроллера содержит ряд компонентов и цепей, обеспечивающих его нормальное функционирование. Совокупность этих компонентов называется обвязкой микроконтроллера. Данная публикация посвящена функциям обвязки и ее особенностям в случае использования AVR микроконтроллера ATmega328P.