Вопросы с тегом «interrupts»

Механизм управления потоком программ в компьютере. Когда компьютер прерван, он сохраняет свое текущее рабочее состояние и переходит к выполнению кода, который зависит от того, какое прерывание было сгенерировано. Прерывания могут быть как аппаратными, так и программными; программные прерывания называются ловушками. Это альтернативный механизм опроса и основа, на которой реализуется большинство операций ввода-вывода, многозадачности и управления.

35
Что означает смещение по краю и по уровню?

Я изучаю микропроцессорную архитектуру 8085, и слово «триггеры» и «триггеры уровня» меня очень сильно смущают. Может кто-нибудь объяснить мне это в словах непрофессионала? Изучая прерывания 8085 с именами RST 7.5, RST 6.5, RST 5.5 и TRAP, я столкнулся с этими словами, и они меня смутили. Здесь я...

24
Методы разделения / синхронизации последовательного протокола

Поскольку асинхронная последовательная связь широко распространена среди электронных устройств даже сегодня, я считаю, что многие из нас время от времени сталкивались с таким вопросом. Рассмотрим электронное устройство Dи компьютер, PCсоединенные последовательной линией (RS-232 или аналогичные) и...

18
Должны ли все ловушки быть всегда определены?

Я видел два случая с dsPIC 30F4013, когда контроллер сбрасывался из-за неопределенной ловушки. Почему эти ловушки поднимались в первую очередь, до сих пор остается загадкой, но это не мой непосредственный вопрос. Я начинаю думать, что было бы хорошей практикой программирования всегда определять все...

17
Безопасно ли прерывать SPI?

Я пишу на карту microSD из моей прошивки, но это задача с самым низким приоритетом, поэтому она может быть прервана другими задачами, когда она находится в процессе чтения / записи. Теперь предположим, что я общался с этой картой microSD с помощью UART. Проблема во время чтения будет в том, что...

17
Stm32 Событие и прерывания

Я начал изучать прерывания на stm32, в частности на плате обнаружения stm32f4. Я нашел этот пример, в котором вы должны нажать кнопку, чтобы запустить прерывание, и нажать его снова, чтобы остановить его. В этой строке: EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt мы должны выбрать либо режим...

15
Как реализовать критические разделы на ARM Cortex A9

Я портирую некоторый устаревший код с ядра ARM926 на CortexA9. Этот код является непромокаемым и не включает ОС или стандартные библиотеки, все пользовательские. У меня сбой, который, по-видимому, связан с состоянием гонки, которое следует предотвратить путем критического разбиения кода. Я хочу...

13
Инструкция AVR SEI

Инструкция AVR SEI ( http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html ) ожидает завершения следующей инструкции перед включением прерываний. Если я использую другую инструкцию для установки флага I в SREG, будет ли это ждать 1 инструкцию? Другими словами: ожидание - это особенность...

13
Как избежать глобальных переменных при использовании прерываний во встроенных системах

Есть ли хороший способ реализации связи между ISR и остальной частью программы для встроенной системы, которая избегает глобальных переменных? Кажется, что общая схема состоит в том, чтобы иметь глобальную переменную, которая совместно используется ISR и остальной частью программы и используется в...

12
Как контроллер узнает, когда перейти к ISR?

Я говорю о вещах на уровне ядра. Насколько я понимаю, ядро ​​контроллера просто выполняет инструкции, которые извлекаются из памяти (Fetch - Decode - Execute). Когда приходит прерывание, как ядро ​​/ ALU решает перейти на ISR? Поскольку мы или компилятор не добавляем никаких инструкций для опроса...

11
Arduino и прерывания: быстрый способ получить значения выводов

Я использую Arduino Uno и уже настроил его для работы с прерываниями на цифровых выводах 2, 3, 4 и 5 в соответствии с объяснением 1, которое я нашел. void setup() содержит следующий код для настройки прерываний. //Endable Interrupts for PCIE2 Arduino Pins (D0-7) PCICR |= (1<<PCIE2); //Setup...

11
В чем разница между прерыванием при изменении и внешним прерыванием в PIC

Какая разница в функции между прерываниями IOC и EXT на PIC? В настоящее время я использую PIC12F1822, и кроме дополнительного уровня проверки вы должны сделать с IOC (то есть, какой вывод вызвал прерывание), они идентичны. В чем практическая разница, если таковая имеется? Когда бы вы использовали...

10
Программное прерывание против функции

Спустя примерно 3 года работы с микроконтроллерами я все еще не знаю, как используются программные прерывания? Я сделал несколько работ с STM32, и я никогда не использовал программные прерывания. На самом деле это большой вопрос для меня: Почему, когда мы можем использовать простую функцию для...

10
Правильное использование прерывания смены контакта

Я пытаюсь использовать прерывания смены контактов, чтобы обнаружить нажатые кнопки. До сих пор я никогда не работал с такими прерываниями, и есть некоторые проблемы, поэтому я хочу убедиться, что это правильное использование. Если я правильно понял таблицу, для использования прерывания смены штифта...

10
Разрешить прерывание, но нет ISR

Я хотел бы знать, что происходит, если прерывание включено (например: Арбитраж потерянное прерывание в модуле CAN LPC1778 NXP), но ISR не был определен для прерывания. Когда происходит такое прерывание, я знаю, что соответствующий флаг прерывания будет установлен, но, поскольку я не определил...

10
Любая причина не использовать Timer0 на AVR?

Просто основной вопрос ... Для arduino / avr / ATMega328 я нахожу множество примеров, использующих Timer1 (для этого есть даже целая библиотека), но редко встречающихся с использованием Timer0 (или Timer2). Теперь я знаю, что использование любого из этих таймеров для управления методом ISR отключит...

10
Критические разделы на Cortex-M3

Я немного интересуюсь реализацией критических участков кода на Cortex-M3, где исключения не допускаются из-за ограничений по времени или из-за проблем параллелизма. В моем случае я использую LPC1758, и у меня есть трансивер TI CC2500 на борту. CC2500 имеет контакты, которые можно использовать в...

9
Использование нескольких внешних прерываний в PIC

Я использовал PIC16F877( таблица данных ) для нескольких проектов. Для прерывания смены одного внешнего вывода вы можете использовать PORTB0прерывание. Но теперь мне нужно поддерживать 8 независимых внешних прерываний смены контактов в одной цепи. В таблице указано, что в ней 15 прерываний...

9
Как создать прерывание по таймеру с Arduino?

Я пытаюсь создать прерывание с задержкой с Arduino. Я хотел бы использовать функцию interrupts (), потому что это внутреннее прерывание. Пример: допустим, я бы хотел, чтобы индикатор включался и выключался только с учетом времени прерывания. Пример кода есть, но он использует внешние прерывания...

9
Как реализованы обработчики прерываний в CMSIS Cortex M0?

У меня есть комплект LPC1114. Последние несколько дней я копал CMSIS-реализацию Cortex M0, чтобы узнать, как в ней все делается. До сих пор я понимал, как каждый регистр отображается и как я могу получить к нему доступ. Но все же я не знаю, как в нем реализованы прерывания. Все, что я знаю о...