Баг в AVR Studio

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 6
Зарегистрирован: Вс ноя 22, 2009 00:35:05
Откуда: Ташкент

Сообщение alexandrmironov »

Проект на СИ в CodeVisionAVR. Чип Atmega48. Проверяю по шагам в AVRStudio 4.16. Установлено прерывание по изменению уровня на PCINT1, т.е. с PORTC. Ставлю флажок на PINC.0 всё ОК, отрабатывает. Снимаю флажок с PINC.0 и ставлю на PINC.1 тоже всё ОК. Но как только перехожу к разряду PINC.3, то тут начинается непонятное. Как только вышел из прерывания, опять в него влетаю, хотя изменений никаких на ногах небыло. Может это глюк какойто? Кто нибуть с таким сталкивался? Проект прилагается.
Вложения
1.rar
Проект в CodeVisionAVR
(22.79 КБ) 139 скачиваний
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

подтягивающие резисторы включены?
Контактная информация:
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вс ноя 22, 2009 00:35:05
Откуда: Ташкент

Сообщение alexandrmironov »

Нет, подтягивающие резисторы не подключены PORTC=0, DDRC=0. В окошке I/O view на вкладке PORTC выстовляю поочерёдно флажки на PINC.0 итд, выстовляю точки останова на п/п прерывания таймера и п/п прерывания по изменению состояния ножек на PORTC. Как только дохожу до PINC.3!!! и всё, прерывания по изменению состояния ножек не кончаются и я всегда попадаю на эту п/п. Сконфигурил всё вроде правильно:
PCICR=0x02; // enable interrupt PCINT8-14
PCMSK1=0x3F; // mask bit PINC6
PCIFR=0x02; // reset software flag PCIF1
Уже студию обнавил до 4.17 билд 666, всё равно проблема осталась.
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

так включите...)
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 6
Зарегистрирован: Вс ноя 22, 2009 00:35:05
Откуда: Ташкент

Сообщение alexandrmironov »

По желанию заказчика в реально работающей схеме будут стоять подтягивающие резисторы на землю, а нажатая клавиша будет соответствовать логической "1" на соответствующей ноге и поэтому внутренние подтягивающие резисторы включать нецелесообразно - будут жрать лишний ток. И потом в симуляторе студии думаю это не важно, т.к. наводок на входах там никаких нету. Выстовляю вручную уровни на пинах (виртуальных) и нажимаю F5, сначало попадаю на прерывание по изменению уровня, там конфигуриться и запускается таймер1, потом опять F5 и уже попадаю на прерывание таймера. Всё это работает пока не дохожу до пина PINC.3 или PINC.4 или PINC.5. PINC.6 - замаскирован и поэтому на него реакции нету, как и должно быть. Похоже всё таки на глюк в студии. Новые билды выпускают, а старые баги не устраняют :(
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 521
Зарегистрирован: Пн фев 27, 2006 02:02:12
Откуда: Россия, Санкт-Петербург

Сообщение Stkarapuz »

alexandrmironov писал(а):...Новые билды выпускают, а старые баги не устраняют :(
А вы пробовали симуляцию через sti файл? Через Stimuli and Logging :)
Указывайте на ошибки других прямо, а не косвенно.
Уважаемые коты, СДАЛ и ЗДЕСЬ пишутся именно так :)))
Унижая другого, унижаешь себя.
Контактная информация:
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вс ноя 22, 2009 00:35:05
Откуда: Ташкент

Сообщение alexandrmironov »

О! :)) спасибо Stkarapuz за умную мысль. Начал разбираться с sti и перешёл с Simulator1 на Simulator2 и глюк пропал. А я уж начал сомневаться в собственной неполноценности :) Вероятно, что упрощённый симулятор1 с маломальски сложными задачами не справляется и вообще его пора отнести в разряд демо. Всем спасибо, вопрос закрыт. :tea:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»