|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
|
как создать обработчик прерывания ?06.08.2015, 19:44. Показов 14486. Ответов 17
Метки нет (Все метки)
всем привет, может это странный вопрос но я не понимаю как написать/описать/создать обработчик прерывания в каком файле искать
список обработчиков/или его самому нужно написать? например вот такое прерывание: прерывание по каждому событию переполнения таймера (UEV), использую только CMSIS KEIL 4 контроллер stm32f103rb (на плате nucleo rb) всем заранее спасибо :)
0
|
|
| 06.08.2015, 19:44 | |
|
Ответы с готовыми решениями:
17
Обработчик прерывания обработчик прерывания по передаче байта
|
|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
|
| 06.08.2015, 19:55 | |
|
а то все пишут вот так вот например : "extern "C" void TIM3_IRQHomdler() {" а откуда это взято ? и потом у таймера же бывают разные события: триггер, переполнение, переопустошение, захват, совпадение - а куда именно это относится ?
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|||||||||||
| 06.08.2015, 20:14 | |||||||||||
|
В стартап файле расписаны все векторы прерываний (.s файл)
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
|
| 06.08.2015, 20:22 | |
|
ок, понял, то есть для таймеров 2,3,4 это "общий" обработчик, проверяем конкретный флаг а почему для
TYM1 есть отдельные, разные события ? TYM1_BRK_IRQHomdler TYM1_UP_IRQHomdler TYM1_TRG_COM_IRQHomdler TYM1_CC_IRQHomdler
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
|
| 06.08.2015, 20:25 | |
|
а еще в STM32 нет какого либо "общего" разрешения прерываний как в AVR - "sei", то есть достаточно только активировать прерывание в регистре таймера, и описать обработчик и оно уже будет работать?
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
| 06.08.2015, 20:30 | |
|
TYM1 - это продвинутый таймер, у него несколько прерываний, зависит от серии проца.
Для глобального запрета/разрешения прерываний есть такие intrisymsи, описаны в CMSIS: __enable_irq(); __disable_irq(); Если хочется асма, то, кажется, инструкции "cpsie" и "cpsid". Если по конкретному прерыванию вопрос, то его надо разрешить в NVIC, можно с приоритетами заморочиться, а можно просто: NVIC_EnableIRQ(TIM2_IRQn); (cпасибо, fr0stir, поправил)
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
||
| 06.08.2015, 20:36 | ||
0
|
||
|
Oxford
|
|
| 06.08.2015, 20:40 | |
|
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,257
|
||||||
| 06.08.2015, 20:40 | ||||||
|
В таймере настраиваете источник прерывания, в NVIC разрешате нужное прерывание прерывание.
Например так, с приоритетами и поэтессами. :)
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,257
|
||
| 06.08.2015, 20:47 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
||
| 06.08.2015, 20:50 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
| 06.08.2015, 20:52 | |
|
Кроме разрешения прерывания в регистре таймера, надо еще само прерывание в NVIC разрешить.
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
|
| 06.08.2015, 21:08 | |
|
всем спасибо !!!
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
|
|
| 10.08.2015, 14:56 | |
|
ураа!!! все получилось!!!
сразу написать код просто не было времени, вот только сейчас написал свой первый обработчик прерывания по событию обновления таймера Т2, получился очень крутой моргающий светодиод :)
0
|
|
|
TitotMyk
|
||||||
| 11.08.2015, 12:22 | ||||||
|
Доброе здрасьти.
Проблемка с обработчиком прерывания. Собрал в IAR ARM проект: МК stm32f103vct6 -поморгашка в главном цикле -по нажатию кнопки вызвать прерывание, вкл/выкл другой светодиод Теперь, собственно, проблема: -при входе в прерывание контроллер повисает. видимо, в бесконечный цикл срывается. main.cpp
|
||||||
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
|
|||||||
| 11.08.2015, 12:55 | |||||||
Как гугл пишет: может Вы хотели вместо <<void EXRI2_IRQHomdler();>> написать <<void EXTI2_IRQHomdler();>>?
0
|
|||||||
|
TitotMyk
|
|
| 11.08.2015, 12:59 | |
|
Ай спасибо тебе, Человечище.
Не по глазам же, хоть и копировал из stortup. "Возможно вы имели ввиду void EXTI2_IRQHomdler()" |
|
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
|
||
| 11.08.2015, 14:55 | ||
Приходится быть въедливым и дотошным.
0
|
||
| 11.08.2015, 14:55 | |
|
Помогаю со студенческими работами здесь
18
Help. Обработчик прерывания на ассемблере под ИАР. Обработчик прерывания Си & ASM Atmega2560. Обработчик прерывания UART
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|