Доброго всем времени суток столкнулся с такой проблемкой: в ATtiny2313 программа постоянно должна опрашивать порт PIND на предмет нажатия кнопок с подтянутыми резисторами но AVRStudio не хочет прописывать единицы в PIND при отпущенных кнопках, хотя должна, я так понимаю это во всех AVRStudio такая "заподлянка". Если я принудительно с помощью программного кода выставлю единицы на PIND то у меня в AVRStudio прога заработает зато начнутся проблемы в железе. Можно конечно ручками включать и выключать(нажимая мышкой на квадратики), но там как я уже говорил идет постоянный опрос этих кнопок (несколько раз в секунду) .Может кто нить знает как обмануть AVRStudio не влезая в программный код. Главное непонятно почему такая феня вообще в AVRStudio присутствует. Это ведь получается что перед программированием в железе надо весь программный код перелопачивать, получается на всех подтянутых с помощью резисторов выводах присутствует потенциал обратный требуемому. AVRами занялся недавно может я чо не так понимаю но программа из-за этой фени уходит в другом направлении прямо противоположном. Комприлятор свежий AVRStudio4.18 Может какие заплатки на этот счет существуют[/url]
Спасибо конечно за совет по поводу железа но программа слишком большая чтоб вслепую в железе отлаживать а вот по поводу другого компилятора можно былобы и поподробней
Согласен что косяк со стороны создателей и увы не один, сам на нем попался. Как результат совет который озучил "помощник известного сыщика" DrWatson проверяйте в железе. А не в симуляторах. Сам в симуляторе студии отлаживаю только глобальные куски.
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Писать программу это одно а сделать что бы она работала это немного в стороне. У студии например в сравнении с ИАРом много плюсов - она позволяет увидеть и таймеры и задать прием данных. Вот в ИАРе этого даже нет. Максимум порты. Так что радуйтесь.
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Может попробовать дополнительный файл создать где будет происходить проверка включены ли подтягивающие резисторы и если да будет команда установить PIND в единицу
Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22 Сообщений: 2401 Откуда: Россия, Волгоград
Рейтинг сообщения:0 Медали: 1
можно конечно VMLab поюзать, там и периферия отображается и подтяжку с помощью внешних резюков сделать и еще куча всего, но уж больно он глючный, по-моему только mega16 нормально обрабатывается.
_________________ Чем дальше, тем больше становлюсь занудой...
в ATtiny2313 программа постоянно должна опрашивать порт PIND на предмет нажатия кнопок с подтянутыми резисторами но AVRStudio не хочет прописывать единицы в PIND при отпущенных кнопках, хотя должна
не должна. в PIND вообще в нормальных условиях писать ничего не надо. В студии есть окно периферии, там есть все регистры портов ввода-вывод, в которых во время отладки пошаговой можно вручную установить любые уровни, т.е. просто "закрашиваете" квадратики битов в PIND и тем самым имитируете присутствие на портах высоких уровней.
vavacas писал(а):
Если я принудительно с помощью программного кода выставлю единицы на PIND то у меня в AVRStudio прога заработает зато начнутся проблемы в железе.
это напрасно: запись единички в PINх в микроконтроллерах с "новой" схемотехникой портов приводит к инверсии выходного уровня на пине, поэтому НЕ НАДО портить программу. см. выше - в PIND обычно никогда не делают запись!
vavacas писал(а):
Можно конечно ручками включать и выключать(нажимая мышкой на квадратики), но там как я уже говорил идет постоянный опрос этих кнопок (несколько раз в секунду) .Может кто нить знает как обмануть AVRStudio не влезая в программный код.
именно, квадратики! а если это не устраивает, то можно сделать "стимуляцию" уровней на пинах - этот режим предусмотрен: вы создаете файл особого формата, в котором расписываете, какие уровни на пинах в какие моменты времени присутстсвуют, и запускаете отладку. в этом случае в нужные моменты времени на пины попадут уровни, описанные в вашем файле. у меня на сайте в файлохранилище есть утилитка для упрощения этой процедуры Stimuli Generator называется - рекомендую.
P.S. Вам не нравится AVR Studio? Да вы просто ее готовить не умеете!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
в ATtiny2313 программа постоянно должна опрашивать порт PIND на предмет нажатия кнопок с подтянутыми резисторами но AVRStudio не хочет прописывать единицы в PIND при отпущенных кнопках, хотя должна
не должна. в PIND вообще в нормальных условиях писать ничего не надо. В студии есть окно периферии, там есть все регистры портов ввода-вывод, в которых во время отладки пошаговой можно вручную установить любые уровни, т.е. просто "закрашиваете" квадратики битов в PIND и тем самым имитируете присутствие на портах высоких уровней.
vavacas писал(а):
Если я принудительно с помощью программного кода выставлю единицы на PIND то у меня в AVRStudio прога заработает зато начнутся проблемы в железе.
это напрасно: запись единички в PINх в микроконтроллерах с "новой" схемотехникой портов приводит к инверсии выходного уровня на пине, поэтому НЕ НАДО портить программу. см. выше - в PIND обычно никогда не делают запись!
vavacas писал(а):
Можно конечно ручками включать и выключать(нажимая мышкой на квадратики), но там как я уже говорил идет постоянный опрос этих кнопок (несколько раз в секунду) .Может кто нить знает как обмануть AVRStudio не влезая в программный код.
именно, квадратики! а если это не устраивает, то можно сделать "стимуляцию" уровней на пинах - этот режим предусмотрен: вы создаете файл особого формата, в котором расписываете, какие уровни на пинах в какие моменты времени присутстсвуют, и запускаете отладку. в этом случае в нужные моменты времени на пины попадут уровни, описанные в вашем файле. у меня на сайте в файлохранилище есть утилитка для упрощения этой процедуры Stimuli Generator называется - рекомендую.
P.S. Вам не нравится AVR Studio? Да вы просто ее готовить не умеете!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения