реклама на сайте
подробности

 
 
> прерывания в C++, как оформить ISR?
Aprox
сообщение May 23 2012, 09:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



В разделе по scmRTOS, в процессе диспута про OS, я встретил пример кода на C++, в котором был представлен некий класс, описывающий работу UART. И в этом классе один из методов якобы был обработчиком прерывания! Как сделать обработчик прерывания отдельной функцией- мне понятно. Но как сделать метод класса таким обработчиком- совершенно неясно в практическом плане. Я работаю с кристаллами STM32 Cortex, пишу на C++, поэтому очень интересует данный вопрос. Если кто умеет назначать метод класса обработчиком прерываний- буду крайне признателен за наводку.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение May 23 2012, 10:24
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Aprox @ May 23 2012, 12:52) *
И в этом классе один из методов якобы был обработчиком прерывания!
...
Если кто умеет назначать метод класса обработчиком прерываний- буду крайне признателен за наводку.
Вся Дерибасовская умеет.
В той же теме давались линки на конкретные примеры в разных темах на этом же форуме.

Могу только повторить, что у некоторых компиляторов нет соответствующей директивы (для avr-gcc что-то было с атрибутами подмены имени, но мне не понравилось) и вызов обработчика придётся делать через промежуточную friend-функцию. Но с inline-подстановкой обработчика работать будет не хуже, зато можно вызвать нестатический метод конкретного объекта.

Зависит от компилятора, читайте документацию на свой компилятор, не требуйте от других указать Вам страницу и абзац.

Цитата(_Артём_ @ May 23 2012, 13:05) *
Вот ещё пример
Да в той теме, в которой он «развёл дискуссию», давалась куча линков на подобные примеры в разных темах. Просто он читать темы по линкам и разбираться не захотел, спорить интереснее.

p.s. Просьба к модераторам переместить тему во «В помощь начинающему». Если после всех примеров вопрос по прежнему поставлен, ему самое место там.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 19:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01418 секунд с 7
ELECTRONIX ©2004-2016