Перейти к содержанию
    

Не запускается внешнее прерывание мега8515

Здравствуйте. Проблема с запуском внешнего прерывания. Вроде все биты установлены:

1 в GICR на соответствующей позиции, в SREG тоже все нормально, т.к. остальные прерывания (уарт, например, работают). Проверял память - вектор прерывания заполняется правильно. Когда опрашиваю пин внешнего прерывания вручную - все нормально, состояние меняется, как надо. Может быть кто-то уже сталкивался с подобной проблемой? Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем ведется вход? Дребезг? Затянутые фронты? Почему срабатывает прерывание (фронт, уровень)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, а он позволяет отлаживать в окужении?

 

Да. Но наверно вам не нужно создаватьвсе окружение - вам же нужно проверить как работает это прерывание, точней почему не работает. Если нужно все окружение создать то PROTEUS 6.7sp3 используйте.

 

И проверьте правильно ли у вас настроено событие внешнего прервания. Тут покажите.

Изменено пользователем Abatt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используется событие по умолчанию - то есть нулевой уровень должен инициировать. Пробовал и по переднему фронту - все то же самое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в PINx ноль есть ? Если есть и прерывание разрешено и бит7 в SREG установлен, а флага все нет то наверно нужно поменять МК на исправный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Код в студию! Эктрасенсов нет здесь :)

2 Jcs

Приведите код.

Без кода что-то дельное посоветовать неполучится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запустил симулятор - сразу нашлась ошибка. В одной из статических переменных класса вместо GICR |= поставил =, соответственно затер все флаги. Спасибо за помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запустил симулятор - сразу нашлась ошибка.

 

В одной из статических переменных класса вместо GICR |= поставил =, соответственно затер все флаги.

 

Спасибо за помощь.

 

Вам первый совет дали использовать VMLAB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...