Visits: 437
Виды формирования запоминая контекста при входе в прерывания.
Компилятор представляет три варианта
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 часть 07Visits: 924 Модуль PWM – широтно импульсная модуляция (ШИМ). ПИК контроллеры часто на борту имеют модули ШИМ. На их основе строятся многие узлы управления электро приводами. В нашем варианте мы …
- Простой цифровой милливольтметр постоянного токаVisits: 4020 Простой цифровой вольтметр постоянного тока. Три диапазона измерений с автоматическим переключением 1 – 0,001 – 0,999 V, 2 – 0,01-9,99 V, 3 – 0,1-99,9. Четыре управляемых выхода с возможностью задания функции контроля …
- Development board based on MCU PIC18F47Q84Visits: 692 PIC18F47Q84 Microcontroller Family with CAN Flexible Data Status: In Production. Метки: Altium Designer, jlcpcb, pic18, PIC18F47Q84
- Простой цифровой вольтметр ch-c3200Visits: 2470 В этой статье рассмотрен пример создания простого вольтметра постоянного тока на основе печатной платы ch-c0030pcb, а при возможности использования внешнего делителя и вольтметр переменного тока. Дан краткий принцип …
- Интерактивные LedVisits: 440 Тема проекта продолжение следует…. Это может быть интересно Метки: LED
- Просто о структурах и объединениях в СиVisits: 2128 Какие задачи нам позволяют решать структуры и объединения? Для разработчика встроенных систем эффективность и компактность кода всегда на первом месте. Если программировании на Ассемблере ты сам определяешь как …
- Проект с использованием MCC часть 04Visits: 1092 Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое …
- WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)Visits: 4989 AT команды связанные с функцией TCP/IP В этом разделе описаны команды которые позволяют устанавливать соединения между серверами и клиентами в сети. Приведено описание команд и примеры их выполнения. …
- Бегущие огни (ch-bo-36)Visits: 2401 Проект на PIC-микроконтроллере PIC16F648A. Количество каналов 36. Для индикации используется подключение по матрице 6х6. Расположение светодиодов в одну линию. Все эффекты написаны для возможности увеличения количества светодиодов. Рекомендуется …
- Проект с использованием MCC часть 13Visits: 1001 Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По …