Ардуино DUE прерывания

cerceli
Offline
Зарегистрирован: 19.08.2016

Добрый день, завяз в прерываниях на DUE.Задумка следующая, при помощи таймера обеспечить прерывания с периодичностью 100 микросекунд . Кратко о моем понимании работы прерываний:

Разрешение прерывания производится установкой или сбросом соответствующих разрядов регистров маски прерывания, т.е как я понял в "void setup" нужному регистру маски прерываний устанавливаем необходимый бит. Помимо маски прерывания есть регистр разрешения прерывания,он устанавливается после выполнения условий автоматически?если нет поясните студенту как есть на самом деле.

Далее возникаетвопрос с обработчиком прерываний  как пример взят ISR(TIMER2_COMPA_vect) 

ISR говорит нам о том что это прерывание , а TIMER2_COMPA_vect название используемого нами прерывания из таблицы векторов прерываний?

Распределение таблицы векторов прерываний для всех микроконтроллеров семейства AVR мною найдены, а  для AMR нет. 

Не судите строго, просвятите, хочется развиваться, не слыть бытовым разгельяем. Буду рад любой информации, спасибо.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

В Ардуино DUE стоит Atmel SAM3X8E, даташит. В ARM'ах всё немного по-другому и чуть сложнее, чем в AVR. В ядро Cortex-M встроен контроллер приоритетных векторных прерываний (NVIC).

cerceli
Offline
Зарегистрирован: 19.08.2016

С даташитом я повозился(английский на уровне базового немецкого в школе). Мне интересен общий алгоритм работы с прерываниями. Как я уже говорил есть РЕГИСТР РАЗРЕШЕНИЯ ПРЕРЫВАНИЯ ТС (TC_IER), РЕГИСТР МАСКИ ПРЕРЫВАНИЯ ТАЙМЕР–СЧЕТЧИКА (TC_IMR) не понимаю различия в них, согласно моим убеждения маска необходима для включения прерывания отсюда каламбур в голове.Настройка прерываний в void setup, а как реализовать обработчик прерываний?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

cerceli, на сколько я знаю на нашем форуме нет специалистов по таймерам DUE . Так что либо спрашивайте на arduino.cc либо пользуйте либу DueTimer, она это умеет.

cerceli
Offline
Зарегистрирован: 19.08.2016

Спасибо, я попробую)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

cerceli пишет:

 как реализовать обработчик прерываний?

void обработчик_прерывания {}

cerceli
Offline
Зарегистрирован: 19.08.2016

http://forum.arduino.cc/index.php?topic=130423.15

Что то нашел, буду разбираться, положу тут,  может кому то пригодится