Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Оцените схему кормушки для кота http://www.cyberforum.ru/avr/thread2085264.html
Решил сделать автоматическую кормушку для сухого кошачьего корма с возможностью удаленного управления. Механическая часть представляет собой коробку из фанеры, скрепленную уголками и лопасти,...
Сравнение и проверка на четность переменной Atmega AVR микроконтроллер
Написал я в atmel studyo 7 программку #include <avr/io.h> #include <avr/interrupt.h> unsykned char z = 0; ISR (TIMER0_COMP_vect) { z ++; if (z > 4)
Atmega AVR микроконтроллер двааа uart на tiny85
кто-нибудь занимался таким извратом? нужно несколько раз в секунду на 9600 8n2 отправлять пакет, получать ответ, парсить его, и отправлять по второму порту на esp8266 распарсенное значение. гугл...
Atmega AVR микроконтроллер ATmega16 - сбивается таймер1 Доброго времени суток. Пилю простейшую "музыкальную шкатулку" на стандартную пищалку на Pinboard 2. Саму пищалку реализую на таймере 1 в режиме CTC. Использую для этого RTOS от Di Halt. Все вроде... http://www.cyberforum.ru/avr/thread2085261.html
Atmega AVR микроконтроллер Счетчик нажатий на кнопку в ATmega 16 http://www.cyberforum.ru/avr/thread2085260.html
Здравствуйте! Встала проблема при освоении программировании на ассемблер, т.к. задание сделать требуют, а времени на полноценное курение всех тонкостей и нюансов недостаточно. Взываю к вашей...
Bootloader for atmega48, atmega88, atmega168, atmega328 Atmega AVR микроконтроллер
Уважаемые имеется ли у кого-нибудь сабж в готовом виде? Можно исходники, можно просто хекс. Гуглеж выдает, в осносном, странички, как прошить arduino загрузчик. Время подпирает, писать с нуля,...
Atmega AVR микроконтроллер Как включить sprintf() в Atmel Studio
Возможно глупый вопрос, но все же)) Необходимо преобразовать переменную с плавающей точкой в строку для последующего вывода на lcd. Все написал, но вместо ожидаемого результата лицезрею...
Atmega AVR микроконтроллер PROGMEM и массив указателей. Как считывать? есть некая структура хранящая в себе константы различного рода. по сути двумерный массив. // объявляю в хидере struct _Menu_fitidata // описательная структура меню { uint8_t... http://www.cyberforum.ru/avr/thread2085257.html
Atmega AVR микроконтроллер Регулируемая нагрузка на AVR http://www.cyberforum.ru/avr/thread2085256.html
Добрый день! Подскажите хочу реализовать автоматическую регулируемую нагрузку на МК - думаю взять RC цепочку, полевик и использовать ШИМ для открытия поливика, а RC цепочка перед ним будет...
Atmega AVR микроконтроллер Atmel Studio 7 и Arduino Добрый день! Раньше у меня была установлена Atmel Studyo 6.2 и плагин Visual Micro и можно было без проблем писать код для Arduino и заливать скетч через COM PORT. Теперь установил Atmel Studyo... http://www.cyberforum.ru/avr/thread2085255.html
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
08.04.2016, 06:39 0

Вызов подпрограммы из обработчика события

08.04.2016, 06:39. Просмотров 14145. Ответов 53
Метки (Все метки)

Ответ

Цитата Сообщение от Otixomdr_1
На мой взгляд, делать что-то серьезное в прерывании чревато. В простых проектах, может, и сойдет, а в серьезных можно получить проблемы.
Можно испортить переменную случайным и трудно определяемым образом.
Или при какой-нибудь очередной модернизации (увеличили скорость движка, увеличили число импульсов на оборот движка, ввели дополнительную обработку сигнала) может не хватить времени на обработку. Зачем закладывать такую мину.
Так что сейчас в прерывании только ставлю флаг или минимально необходимые действия.
Может быть, и есть случаи, когда в прерывании необходини сложная обработка, но пока не сталкивался.
КМК опасения при работе с прерываниями слишком преувеличены, особенно в контроллерах, где есть аппаратная защита от вложенности, как в АВР. Как при выполнении обычного кода нужно следить, чтобы не испртить данные, так и при выполнении подпрограмм, включая обработчик прерывания. Во втором случае в определенной степени даже проще - все, чем намерен пользоваться (регистры) - сохрани, не задумываясь "а оно еще нужно, или можно затереть", а потом верни на место.

Особенности начинают проявляться при дефиците времени, когда возникает необходимость обработки события, когда еще не завершена обработка предыдущего. Но к программированию это имеет мало отношения, а больше к физическому смыслу - допустимо ли отбросить недоделанную обработку и начать новую, или наоборот, обязательно завершить, или организовать подсчет вызовов (а тут однобитовым флагом не обойтись) и потом обработать все, опять же если это имеет физический смысл.

Правда есть еще один универсальный и волшебный способ - применить СТМ и забыть о проблемах.

Вернуться к обсуждению:
Вызов подпрограммы из обработчика события
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2016, 06:39
Готовые ответы и решения:

Вызов обработчика события
есть два обработчика события button1.Click и button2.Click . Как из button1.Click вызвать...

Вызов обработчика события.
Можно ли из одного обработчика события, например: void __fastcall TForm1::Button1Click(TObject...

Ручной вызов обработчика события
Здравствуйте, никак не могу разобраться с вызовом метода. void Grid_ManipulationStarting(object...

Косвенный вызов DoEvents() из обработчика события?
В одном приложении столкнулся со следующим явлением : программа сработала так, как если бы событие...

Вызов единственного обработчика события при переопределении
Все привет! Вопрос по теории. Можно ли как-то сделать так, чтобы при перекрытии обработчика события...

53
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.