PIC32MZ – прерывания (заметки)

Visits: 437


Виды формирования запоминая контекста при входе в прерывания.

Компилятор представляет три варианта

AUTO – когда запоминания места возврата из подпрограммы возложено на программу, т.е все создается программно. Этот метод является самым меленным.

SRS – это когда для всего этого используется теневые регистры (самый быстрый способ), все происходит на аппаратном уровне и пользователь может может указать вот это прерывание выполнять быстро.

SOFT – когда выбор возлагается на компилятор и компилятор сам определяет возможность использовать SRS или когда вставлять макрос обработки.

Если с AUTO и SOFT – проблем не предвидеться, то для использования теневых регистров необходимо понимать, что делаем.

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



Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее