Страница 1 из 1

Баг в AVR Studio

Добавлено: Вс ноя 22, 2009 00:56:59
alexandrmironov
Проект на СИ в CodeVisionAVR. Чип Atmega48. Проверяю по шагам в AVRStudio 4.16. Установлено прерывание по изменению уровня на PCINT1, т.е. с PORTC. Ставлю флажок на PINC.0 всё ОК, отрабатывает. Снимаю флажок с PINC.0 и ставлю на PINC.1 тоже всё ОК. Но как только перехожу к разряду PINC.3, то тут начинается непонятное. Как только вышел из прерывания, опять в него влетаю, хотя изменений никаких на ногах небыло. Может это глюк какойто? Кто нибуть с таким сталкивался? Проект прилагается.

Добавлено: Вс ноя 22, 2009 10:27:01
BCluster
подтягивающие резисторы включены?

Добавлено: Вс ноя 22, 2009 11:46:20
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, всё равно проблема осталась.

Добавлено: Вс ноя 22, 2009 11:55:18
BCluster
так включите...)

Добавлено: Вс ноя 22, 2009 21:20:53
alexandrmironov
По желанию заказчика в реально работающей схеме будут стоять подтягивающие резисторы на землю, а нажатая клавиша будет соответствовать логической "1" на соответствующей ноге и поэтому внутренние подтягивающие резисторы включать нецелесообразно - будут жрать лишний ток. И потом в симуляторе студии думаю это не важно, т.к. наводок на входах там никаких нету. Выстовляю вручную уровни на пинах (виртуальных) и нажимаю F5, сначало попадаю на прерывание по изменению уровня, там конфигуриться и запускается таймер1, потом опять F5 и уже попадаю на прерывание таймера. Всё это работает пока не дохожу до пина PINC.3 или PINC.4 или PINC.5. PINC.6 - замаскирован и поэтому на него реакции нету, как и должно быть. Похоже всё таки на глюк в студии. Новые билды выпускают, а старые баги не устраняют :(

Добавлено: Вс ноя 22, 2009 23:27:37
Stkarapuz
alexandrmironov писал(а):...Новые билды выпускают, а старые баги не устраняют :(
А вы пробовали симуляцию через sti файл? Через Stimuli and Logging :)

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