цифровая электроника
вычислительная техника
встраиваемые системы

 



Правила использования прерываний

Автор: Mike(admin) от 6-09-2013, 18:00

В статье предлагается ряд простых правил, упрощающих разработку приложений, использующих прерывания.


I love Interrupts

  • Постарайтесь делать обработчик прерываний как можно короче. В идеале он должен быть не более полстраницы кода на языке C. Если пишите на ассемблере, то постарайтесь уместить код максимум на одной странице. Длинные обработчики, могут нарушить время работы программы.

  • Время выполнения кода в обработчике также должно быть сведено к минимуму. 100-200 тактовых циклов хватит вполне, хотя насчет точного количества можно подискутировать. Если вам нужно много чего обработать, то лучше сгрести данные в буфер ожидания и позволить основному циклу или подпрограмме не-обработчика сделать все остальное.

  • Стоит знать наихудшее время выполнения обработчика, тогда можно планировать программу для работы в реальном времени. Избегайте циклов, потому что они делают проблемные места еще «проблемнее», и программа может войти в бесконечный цикл из-за мелочи, о которой вы даже не подозревали.

Дверная сигнализация на базе микроконтроллера PIC12F635

Автор: Mike(admin) от 31-08-2013, 17:12

Систему дверной сигнализации можно создать на базе компактного микроконтроллера PIC12F635. Схема представляет собой устройство звукового оповещения, которое выдает сигнал предупреждения, когда кто-то открывает дверь. Можно установить это устройство в парадной двери или в двери черного хода в качестве охранной сигнализации, чтобы отпугнуть воров и злоумышленников. Данный модуль питается от четырех батареек типа AA/AAA напряжением 1.5 В, что в итоге дает 6 В.

Микроконтроллерное управление реле

Автор: Mike(admin) от 29-08-2013, 16:22

Во многих конструкциях на основе микроконтроллеров применяются различные методы взаимодействия частей этой конструкции между собой и с внешним миром. Сам микроконтроллер может быть представлен как система, которая принимает входные сигналы, обрабатывает их и выводит обработанные данные. Микроконтроллеры чрезвычайно полезны при взаимодействии с другими устройствами вроде датчиков, двигателей, коммутаторов, дисплеев и других приборов. Зачастую возникнет необходимость организовать с помощью микроконтроллера управление электромагнитным реле.

25 классных вещей, которые можно сделать с помощью Raspberry Pi

Автор: Mike(admin) от 29-08-2013, 16:00

Появление в 2012 году миникомпьютера Raspberry Pi пробудило творческую жилку у многих людей, что породило множество новаторских подходов к вычислительным системам, не виданных со времен восьмибитников.


Действительно, можно сказать, что вновь наступил золотой век компьютерной техники. В связи с этим ниже будут представлены 25 проектов, которые можно сделать с Raspberry Pi.


1. Mod My Pi


Mod My Pi


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

Знакомство с программируемыми логическими интегральными схемами типов FPGA и CPLD

Автор: Mike(admin) от 29-08-2013, 15:23

В первой половине 60-х годов прошлого столетия электронные устройства разрабатывались на основе дискретных компонентов. Цифровые системы были похожи на лабиринты из лапши проводов, соединяющих компоненты. Однажды собрав схему, было сложно ее переделать. Иногда разработчики забывали о том, для чего вообще они проектировали свое устройство! Изготовление таких систем было очень затруднено, а при их починки или переделке у инженеров просто закрывались глаза от ужаса. Производители микросхем решили этот вопрос путем интеграции на одном кристалле не соединенных между собой вентилей ИЛИ-И, что в итоге назвали программируемым логическим устройством (programmable logic device или PLD).

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

MPLAB X Парсинг в реальном времени

Автор: Mike(admin) от 29-08-2013, 13:22

MPLAB X имеет мощный парсер, позволяющий устранять синтаксические ошибки при написании кода.




Микроконтроллеры семейства PIC32. Прерывания.

Автор: Mike(admin) от 29-08-2013, 13:18

Говоря простым языком, прерывание это какое-либо внешнее или внутреннее событие, требующее от процессора немедленной реакции на него. При этом выполнение текущей программы на время завершается, процессор сохраняет значения служебных регистров, входит в обработчик прерывания, обрабатывает это прерывание, по выходу восстанавливает служебные регистры и вновь возвращается к месту выполнения основной программы, на котором его прервали. Вообще, в ядре MIPS (а в PIC32 используется именно оно) все прерывания попадают в категорию исключений. К исключениям здесь относится все, что «мешает» нормальной работе основной программы. Например, выполнение процедуры сброса – исключение, ошибка при делении – исключение, и, конечно же, различные прерывания, как внутренние, так и внешние, тоже исключения.


Прерывания


В PIC32 имеются 96 источников прерывания и 64 векторов прерывания. Это значит, что несколько источников могут быть «приписаны» к одному вектору, то есть указателю к функции обработчика прерывания. Нужно учитывать, что механизм прерываний поддерживает одновекторный и мультивекторный режимы. При одновекторном режиме в таблице исключений будет представлен один вектор для прерываний, и, следовательно, будет лишь один обработчик прерываний. Многовекторный режим предоставляет возможность работать с прерываниями в собственных обработчиках, тем самым повышая гибкость и читабельность программы. Давайте начнем разбирать это на примерах и потихоньку вникать во все тонкости прерываний.

MPLAB X Навигация с помощью гиперссылок

Автор: Mike(admin) от 29-08-2013, 13:14

MPLAB X с помощью гиперссылок позволяет находить места объявлений переменных и функций как внутри, так и вне одного файла




Микроконтроллеры семейства PIC32. Работа с таймерами.

Автор: Mike(admin) от 29-08-2013, 13:08

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


Таймеры


В PIC32 имеется два типа таймеров – таймеры A (по сути, он один – TMR1) и таймеры B (TMR2, TMR3, TMR4, TMR5). Все они 16-разрядные, могут тактироваться от внешнего или внутреннего источника и вызывать прерывания. Но таймер A может работать в качестве асинхронного таймера/счетчика, тактируемого от отдельного осциллятора, функционировать в спящем режиме микроконтроллера и иметь предделитель со значениями 1:1, 1:8, 1:64, 1:256. Таймеры B могут формировать в паре один 32-разрядный таймер, иметь предделитель со значениями 1:1, 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:256, влиять на срабатывание триггера события.

MPLAB X Шаблоны кода

Автор: Mike(admin) от 29-08-2013, 13:04

MPLAB X может автоматически продолжить строку или даже вставить целый фрагмент кода в зависимости от введенных первых символов