|
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
|
||||||
Проблемы с прерываниями03.12.2013, 03:30. Показов 5362. Ответов 8
Метки нет (Все метки)
Граждане, помогите с проблемой, несколько часов ломаю голову не могу осилить:
Хочу обрабатывать нажатие кнопки с помощью таймера и прерываний. Более-менее получилось, но есть одна проблема - если кнопку нажимать быстро много раз подряд, программа зависает. Как выяснил - почемуто оказываются отключены прерывания от кнопки. Но я не вижу в каком месте они могут отключится и не в ключится... При спокойном нажатии (пару раз в секунду) все работает четко. Прогамма рабботает так: после инициализации засыпаем, по прерыванию от кнопки запускаем таймер и прерывания от него, а от кнопки отключаем, что б не мешали счету. Переходим в LPM3. Как только счетчик времени нажатия или времени отжатия превысит порог, просыпаемя, мигаем соотв. светодиодом. Затем включаем прерывания кнопки и засыпаем.
0
|
||||||
| 03.12.2013, 03:30 | |
|
Ответы с готовыми решениями:
8
Проблемы с прерываниями Проблемы с внешними прерываниями STMF3DISCOVERY+CooCox Проблемы с прерываниями |
|
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
|
||||||
| 03.12.2013, 13:27 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
|
| 03.12.2013, 13:31 | |
|
Есть подозрения, что со спящими режимами что-то не то. Попробуйте без них запустить прогу.
__low_power_mode_off_on_exit(); эта штука точно выводит из lpm3?
0
|
|
|
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
|
|
| 03.12.2013, 13:50 | |
|
MrYurom, только из-за того, что прерывание в иделе должно работать быстро?
dr_wop, я тоже подозреваю, что проблема образуется во время входа-выхода из LPM, но в каком месте - не могу отловить. Можно попробовать без них, но ведь финальная прога должна быть с ними :) __low_power_mode_off_on_exit(); это выход из любого режима в полнофункциональный, т.е. когда работает все.
0
|
|
|
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
|
|||
| 03.12.2013, 13:55 | |||
Тем более в MSP, где вложенные прерывания по умолчанию запрещены.
Возможно, что они сбрасывают глобальный флаг IE
0
|
|||
|
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
|
||||||
| 03.12.2013, 14:06 | ||||||
|
Нет, IE при выходе не затрагивается, только тактирование
Хотя да, может получаться, что контроллер не переходит в LPM3, тогда таймер не будет работать и программа зависнет. Надо посмотреть. Правильно я перехожу из LPM4 в LPM3?
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
|
|
| 03.12.2013, 14:26 | |
|
Попробовал без спящих режимом. Нифига - при быстром многократном нажатии программа виснет... При неторопливом нажатии все ок. Но почему? Ведь при обработке первого нажатия прерывания от кнопки отключаютя... как может сработать второе и при этом накосячить?
0
|
|
|
omx
|
|
| 03.12.2013, 15:04 | |
|
А много вы выигрываете в LPM4 вместо LPM3? Старт часового кварца - дело не быстрое.
|
|
|
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
|
|
| 03.12.2013, 15:15 | |
|
LPM3 у меня от VLO. Судя по ДШ разница в 2 раза, хоть речь о 1 мкА. Да и зачем держать постоянно включенным генератор.
Нашел проблему последнего сообщения - включение прерывания поставил после мигания диодом, так до этого во времы процедуры мигания происходило отключение прерываний, теперь все работает идеально. А вот как теперь спящие режимы применить? В варианте со спящим режимом подобное не поможет, т.к. включение стоит перед входом в спячку, т.е. получается уже после мигания...
0
|
|
| 03.12.2013, 15:15 | |
|
Помогаю со студенческими работами здесь
9
Пробема с прерываниями Энкодеры с прерываниями Работа с прерываниями
Работа с прерываниями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|