![](https://catcatcat.d-lan.dp.ua/wp-content/uploads/2016/11/medium-PIC32MZ0512EFE064-TQFP-64.png)
Views: 450
Виды формирования запоминая контекста при входе в прерывания.
Компилятор представляет три варианта
AUTO – когда запоминания места возврата из подпрограммы возложено на программу, т.е все создается программно. Этот метод является самым меленным.
SRS – это когда для всего этого используется теневые регистры (самый быстрый способ), все происходит на аппаратном уровне и пользователь может может указать вот это прерывание выполнять быстро.
SOFT – когда выбор возлагается на компилятор и компилятор сам определяет возможность использовать SRS или когда вставлять макрос обработки.
Если с AUTO и SOFT – проблем не предвидеться, то для использования теневых регистров необходимо понимать, что делаем.
- Для управления механизмом SRS предназначен регистр PRISS. В этом регистре можно выбрать возможность использования для каждого уровня приоритета механизма SRS. В битах PRI1SS – PRI7SS мы можем установить на каком уровне будет работать механизм SRS в выбрано приоритете. По умолчанию все значения равны нулю это значит, что механизм не используется. Если необходимо, например, для приоритета 6 использовать механизм SRS, то значение должно быть отлично от нуля. Значение может быть в пределах 1-7, это уровень приоритета для вызова механизма SRS. Например установит его на 6.
- Далее, нам, необходимо обрабатывать прерывания от DMA, канал 1. Мы установит уровень его приоритета 6 (субприоритет 3).
- Для вызова прерывания будем использовать описание функции в таком виде void __ISR (_DMA1_VECTOR, IPL6SRS) __DMA1Interrupt (void)
Настройка PRISS
PRISSbits.PRI6SS = 6;
Настройка прерываний модуля DMA, канал 1
IPC33bits.DMA1IP=6; // 6 уровень приоритета IPC33bits.DMA1IS=1; // субприоритет 1 IFS4bits.DMA1IF=0; // сбросить флаг прерывания IEC4bits.DMA1IE=1; // разрешить прерывание
Описание функции обработки прерывания
void __ISR (_DMA1_VECTOR, IPL6SRS) __DMA1Interrupt (void) {
……
Это может быть интересно
Проект с использованием MCC часть 07
Views: 970 Модуль PWM – широтно импульсная модуляция (ШИМ). ПИК контроллеры часто на борту имеют модули ШИМ. На их основе строятся многие узлы управления электро приводами. В нашем варианте мы …Development Boards PIC18F47Q84
Views: 1822 Microchip тішить новими мікроконтролерами. Особливістю цього MCU – це багата інтелектуальна периферія, що дозволяє вирішувати такі завдання на 8 бітних MCU, які неможливо реалізувати на деяких навіть 32 …BMP280 – температура и атмосферное давление – учебный проект
Views: 2052 Учебный проект на PIC32 и светодиодной панели P5 (2121)-168-6432-80 (32*64). Проект позволяет ознакомиться с простой графикой и с чтением давления и температуры с датчика BMP280. Для тестирования необходимо …MAX7219/21 и 8х8 LED дисплеи
Views: 923 MAX7219, MAX7221 предназначены для вывода информации на 8 разрядов семисегментного индикатора, но на нем легко организовать вывод на светодиодные индикаторы 8х8. продолжение следует…. Это может быть интересноLCD индикаторы на драйвере ML1001
Views: 1870 ML1001 – статический LCD GOG (чип в стекле) драйвер для 40-сегментного LCD в позолоченном противоударном исполнении. На них можно каскадно строить цельные из 80 или 120 сегментов LCD индикаторы. …WiFi ESP8266 ESP-202 (ESP-12F)
Views: 7677 Первое знакомство, сначала надо его купить… http://voron.ua/catalog/024404 Схема для подключения и тестирования По схеме ставим две кнопки, сброс и кнопку BT2, для перевода в режим обновления прошивки. Если надо сделать …Датчик контроля протечки воды ch-c0020
Views: 1943 Как здорово летом под теплым дождем с тобою вдвоем оказаться. Как классно по лужам бежать босиком, с тобою играть и смеяться! Но совсем грустно оказаться под таким дождем, который течет с …LED драйвер TM1639
Views: 2183 TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером …ch-4050 – дифференциальный терморегулятор
Views: 1867 ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя …MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)
Views: 1187 Введение MTouch ® Модуль Емкостной Библиотеки для MPLAB ® X Code Configurator (MCC) позволяет быстро и легко генерировать решение кода на Cи для емкостной сенсорной кнопки, датчика приближения и слайдера.