|
104 / 15 / 3
Регистрация: 29.11.2010
Сообщений: 335
|
||||||
Непонятное поведение Proteus 8.3 (INTCON-прерывания- протеус дал неверные флаги)21.01.2016, 19:44. Показов 2162. Ответов 5
Метки нет (Все метки)
Всем привет.
В общем ситуация следующая:
На выходе мы получаем следующий регистр INTCON: 10001000 делаю прерывание по кнопке на порт GP2 - срабатывает прерывание и по идее ы должны получить флаг прерывания по уровню сигнала на входах GP5:GP0, то есть регистр INTCON должен быть: 10001001. Но если открыть Proteus 8.3 и посмотреть состояние регистра INTCON после прерывания мы получаем следующее: . Какого хрена?! И как это решить?
0
|
||||||
| 21.01.2016, 19:44 | |
|
Ответы с готовыми решениями:
5
Таймеры и их флаги прерывания Флаги прерывания таймеров Непонятное поведение поведение TIM6 на STM32f4discovery |
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
| 21.01.2016, 19:59 | |
|
...на всякий случай укажите МК. Потому что ассемблеры, они же разные ...
1
|
|
|
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
|
|
| 21.01.2016, 20:15 | |
|
Таймер включен у вас?
Зачем bsf INTCON, GPIE ; разрешение прерываний на GPIO если кнопка подключена к INT GP0 надо делать bsf INTCON, INTE И перед прерыванием нужно очищать флаги прерываний ручками, это не AVR Если таймер включен, то правильно показывает INTCON
0
|
|
|
104 / 15 / 3
Регистрация: 29.11.2010
Сообщений: 335
|
|
| 22.01.2016, 11:25 [ТС] | |
Сообщение было отмечено ValeryS как решение
Решение
Для начала, прерываю я по GP2, сейчас переставлю прерывание на INTE и посмотрю на результат.
Таймер у меня не включен: он в закоменчен. Я вообще не понимаю ричем тут таймер, это же совсем другое прерывание. Можете подробнее объяснить как он влияет на INTCON (кроме как установкой флага прерывания tmr0)? А флаги я чищу, само собой. Добавлено через 10 минут Поставил перывание на INTE - получаю аналогичную ситуацию: после прерывания все три флага стоят в 1, как на скрине в шапке темы. Я к слову перед прерыванием настраиваю предделитель таймера, вы говорите таймер влияет: может предделитель надо настраивать позже? Добавлено через 14 часов 6 минут Разобрался с проблемой оказывается на флаги влияла инструкция управляющая предделителем: она у меня стояла до прерывания по кнопке. Переместил её в место позже и флаги стали работать нормально.
0
|
|
|
104 / 15 / 3
Регистрация: 29.11.2010
Сообщений: 335
|
||||||
| 30.01.2016, 16:28 [ТС] | ||||||
|
В общем я снова столкнулся с данной проблемой, только теперь у меня таймера нет. Я даже написал специальный код-пример, который демонстрирует, что ничерта флаг не сбрасывается.
Ситуация следующая:
Запускаю схему, переключаю ключ на контакт: происходит первое прерывание, начинается его обработка, мы попадаем в interrupt, делаем nop и по идее скидываем GPIF - флаг прерывания. Он не скидывается, вот доказательство из Debug'а Протеуса: То есть после выполнения команды "bcf INTCON, GPIF" флаг не сбросился. Господа Гуру, подскажите, что не так, чёрт побери?!
0
|
||||||
|
104 / 15 / 3
Регистрация: 29.11.2010
Сообщений: 335
|
|||||||||||
| 30.01.2016, 17:48 [ТС] | |||||||||||
|
А, да, забыл кусочек кода, но всё равно прерывания не сбрасываются
Всё, нашёл решение проблемы: помогает обновление порта в обработчике прерываний
0
|
|||||||||||
| 30.01.2016, 17:48 | |
|
Помогаю со студенческими работами здесь
6
Bootloader + Прерывания + Proteus С51 Proteus прерывания клавиатуры (AT89C51RC2) Непонятное поведение ОС Непонятное поведение Непонятное поведение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|