Описание тега isr
Подпрограмма обслуживания прерывания, также известная как обработчик прерывания, представляет собой подпрограмму обратного вызова в микропрограммном обеспечении микроконтроллера, операционной системе или драйвере устройства, выполнение которой запускается при приеме прерывания. Обработчики прерываний имеют множество функций, которые различаются в зависимости от причины, по которой прерывание было сгенерировано, и скорости, с которой обработчик прерывания завершает свою задачу.
0
ответов
Простая арифметика через регистры в c с использованием собственного ISR
Я пишу программу, в которой я должен сделать свой собственный ISR и выполнить основную арифметику, например, когда я устанавливаю AH в 1, он должен добавить регистры BX и CX. Когда AH установлен на 2, он должен выполнять вычитание в регистрах BX и C…
20 ноя '12 в 08:16
0
ответов
Как реализовать буфер для извлечения массива строк и его анализа? (ATmega16 в C затмении)
Я хочу получить массив строк, как это:#s;12;34;56: я положил данные в буфер, чтобы данные могли быть проанализированы / обработаны. поэтому данные должны содержать "#" в первом индексе буфера и ":" в последнем индексе буфера, который будет обработан…
31 июл '15 в 07:49
0
ответов
Некоторые двоичные файлы stm32 не могут быть запущены, потому что первые 8 байтов (isr_vector и точки входа) двоичных файлов неверны. но не знаю как решить
Когда я компилирую проекты stm32 (используя cmake), некоторые большие проекты не могут быть запущены, но другие маленькие могут (с точно такой же настройкой)! И после однодневной отладки я считаю, что проблема в первых двух словах (адрес isr_vector …
05 дек '17 в 08:39
1
ответ
Модули Digi S2B, режим прерывания кнопки
Я разрабатываю приложение, используя Freescale CodeWarrior IDE с расширением Digi. Я создал образцы приложений и использовал их. Это работало довольно хорошо, но у меня были некоторые проблемы с IRQ. Если я использую компонент IRQ, я не всегда вхожу…
06 ноя '13 в 08:25
12
ответов
В чем разница между FIQ и системой прерываний IRQ?
Я хочу знать разницу между FIQ и системой прерываний IRQ в любом микропроцессоре, например: ARM926EJ.
10 июн '09 в 06:09
1
ответ
C для приложения AVR - повторение ISR
Я пытаюсь заставить простую подпрограмму прерывания работать на ATMega328P. Есть светодиод, подключенный к PD6, и встроенная кнопка на PB7. Светодиод должен нормально мигать до тех пор, пока кнопка не будет нажата, а затем постоянно светиться в тече…
02 ноя '18 в 19:54
1
ответ
Linux IRQ: снятие маски с IRQ в ISR
У меня есть IRQ, который использует handle_level_irq(), Большую часть времени ISR требует, чтобы нижняя половина была запланирована, но иногда она может определить, что она ложная, и не хочет планировать нижнюю половину (по соображениям производител…
14 дек '12 в 15:04
1
ответ
Включение прерывания I2C при прерывании по таймеру на nRF52 Arduino
Я пишу программу для платы на базе nRF52 с использованием библиотеки Redbear Arduino. Эффективно трактую мою доску как BLE Nano 2. У меня есть таймер, который тикает каждые x миллисекунд, например, 50 мс. В этом таймере я хотел бы прочитать данные с…
01 июл '17 в 15:24
2
ответа
Биты регистра обслуживания контроллера прерываний, когда происходит немаскируемое прерывание
У меня есть следующий вопрос (относительно x86 архитектура): Что происходит, когда немаскируемое прерывание (например, NMI) прерывает маскируемое прерывание, которое выполняется? Сохраняется ли соответствующий ISR (регистр обслуживания) прерванного …
06 июн '11 в 11:40
1
ответ
Использование глобального значения в FreeRTOS внутри таймера ISR
С помощью: Arduino Mega 2560 Arduino IDE Timer2 Код: #include "FreeRTOS_AVR.h" #include "basic_io_avr.h" /*** * HITEC servo ranges from 0.9 to 2.4 ms * values in usec ***/ const int firstPulse = 0.7 * 1000; const int centerPulse = 1.5 * 1000; const …
30 июн '15 в 12:46
0
ответов
Можно ли использовать доступ к памяти ввода / вывода внутри ISR под Linux (ARM)?
Я создаю драйвер для связи с FPGA под Linux. ПЛИС подключается через интерфейс GPMC. Когда я тестировал чтение / запись из контекста драйвера - все работает отлично. Но проблема в том, что мне нужно прочитать какой-то адрес по прерыванию. Поэтому я …
10 июл '18 в 14:15
1
ответ
Как заставить прерывание перезапустить основной цикл вместо возобновления? (вопрос времени!)
За последние два дня я написал программу, которая в общих чертах генерирует довольно точный настраиваемый пользователем импульсный сигнал (как по частоте, так и по рабочему циклу). Он в основном использует функцию micros() для отслеживания времени, …
29 апр '15 в 03:57
2
ответа
ISR + код, объединяющий код счета с процедурой ISR
У меня есть раздел кода на C для устройства PIC, он активирует 4 отдельных реле по заранее заданному шаблону, каждый из которых настраивается индивидуально с учетом времени и частоты появления. Этот шаблон продолжается до бесконечности, но обнаружил…
21 авг '15 в 08:44
2
ответа
Что происходит, когда вы отключаете прерывания, и что вы делаете с прерываниями, которые вы не знаете, как с ними работать?
Когда вы отключаете прерывания (с cli инструкция в x86), что именно происходит? PIC ждет, пока вы включите прерывания и сработаете, когда это произойдет? (Если это так, сколько времени он ждет и что произойдет, если время "истечет"?) Разве прерывани…
20 май '12 в 05:32
1
ответ
Переменная AVR прерывания обновлена в основной
Используя 8-битный AVR micro, я пришел к простой ситуации, которую не так просто решить. Рассмотрим следующий фрагмент: static volatile uint8_t counter; //fires often and I need all the values of the counter. void isr(void) { counter++; } int main (…
08 дек '18 в 09:37
1
ответ
Есть ли в ISR (подпрограмме обработки прерываний) отдельный стек?
При использовании RTOS (например, FreeRTOS) у нас есть отдельные стековые пространства для каждого потока. Так что насчет ISR (процедур обработки прерываний), у них есть отдельный стек в памяти? Или это настраивается? Если у них нет стека, в котором…
03 фев '16 в 14:35
0
ответов
Serial.print() массив, заполненный в ISR Timer1 Arduino
Я узнал, как использовать прерывание Timer1 с Arduino Uno. Я написал этот код, который делает именно то, что я хочу, печатая числа от 0 до 49 на Serial Monitor каждые пять секунд: #include <TimerOne.h> #define TIMER_US 100000 const int payload…
20 фев '19 в 22:15
0
ответов
3-канальный АЦП MSP430 для UART в MATLAB
Приведенный ниже код является модифицированной версией примера кода TI для многоканального преобразователя АЦП и связи UART. У меня возникают проблемы с запуском этого кода, и я не уверен, что я делаю неправильные советы и критику. Я полагаю, что эт…
02 мар '19 в 19:33
1
ответ
Как настроить ISR для запуска каждую секунду - C Atmega328p
Я пишу код, который должен проверять вход датчика каждые 0,5 с. Я хочу использовать ISR, потому что я хочу, чтобы мой код выполнялся, пока не изменится вход датчика. Как бы настроить этот ISR для выполнения каждые 0,5 с? Спасибо:)
10 дек '15 в 20:06
2
ответа
Почему в UART RX FIFO предусмотрены прерывания FIFO на одну четверть, на половину, на три четверти? Каковы их варианты использования?
Я реализую декодер протокола, который получает байты через UART микроконтроллера. ISR берет байты от периферийного устройства UART и помещает его в кольцевой буфер. Основной цикл читает из кольцевого буфера и запускает конечный автомат для его декод…
11 фев '19 в 07:28