В CodeVisionAVR набрал небольшую программу, которая записывает в порт A 255 при возникновении прерывания INT0 (PD0). В симуляторе VMLAB программа прекрасно работает. Но вот в Proteus 7 Professional нет. Нет реакции на прерывания вообще. Я выбрал свой МК. Указал путь к hex файлу и написал частоту. Но реакции ноль. Листинг программы ниже.
Новость ! AvrStudio 4.16 работает в связке с PROTEUS.
AVR Studio 4.16 build 628. Размер: 127 MB добавлены: - поддержка новых микроконтроллеров (ATtiny10, ATtiny24A, ATtiny44A, ATxmega32A4, ATxmega16A4, ATmega164PA, ATmega48PA) - новый инструментарий для сенсорных клавиатур AVR QTouch Studio - поддержка различных комбинаций переходных плат STK600 - активирована система отчетов об ошибках Windows (Windows Error Reporting (WER)) - поддержка Xmega в командной строке JTAGICE mkII
Тоже есть вопрос про Протеус. А точнее о подаче опорного напряжения да АЦП в Протеусе. Мне почему-то кажется, что он на AREF заводит откуда-то 5 вольт. А я ему и с источника постоянного напряжения под названием VSOURCE (в протеусе) подавал нужные мне 3,3В, и через делитель, дающий 3,3В с 5-ти вольт. Нет - явно от пяти вольт пляшет. И преобразование делает исходя из этого значения. Я ему уже AREF соединил с одним из входов АЦП. По идее должно быть 255 (он у меня как 8-ми битный сконфигурирован), а в итоге выдает 169.
Вот поекты: в CVAVR и Proteus'е. Проект в протеусе основан на проекте, где использовался LCD индикатор, все лишнее выброшено и добавлено мое, поэтому тянет еще один файлик Proteus 7.4 SP3 (6792) Что-то не пойму, как здесь приложить файл и в настройках профиля тоже не увидел, так что положил сюда http://slil.ru/26567968
Flint писал(а):Вот поекты: в CVAVR и Proteus'е. Проект в протеусе основан на проекте, где использовался LCD индикатор,
Похоже в PROTEUS не верно работает АЦП ATmega8 ( из библы AVR2.DLL ) 8 битный режим АЦП, выравнивание в лево - результат в старшем байте ADCH даташит стр 205 Напряжение на входе АЦП 1 равно 2 вольта и вход АЦП 1 соединен с AREF
#define ADC_VREF_TYPE 0x20 // Опорное напряж должно быть внешнее с ножки AREF // получается в PROTEUS опора как бы 5 вольт - результат 102 на LCD и в регистре ADCH НЕ ПРАВИЛЬНО В PROTEUS !
Проверял в PROTEUS 7.4 sp3 PRO Можно поставить наверно библиотеку AVR.dll от старого прота PROTEUS 7.2 ==================
Вылечил проще - Соединив AVCC c AREF !!! ==================
C двумя другими вариантами опор - 1) внутрен. опора и 2) опора от AVCC работает правильно.
Это хорошо. То есть любое опорное напряжение от 2 вольт и выше можно использовать, подав нужное мне опорное на AVCC и AREF соединенные вместе , так? И при этом модуль ADC будет моделироваться нормально? Просто ADC как бы от напряжени питания контроллера работает... Мне то как раз именно 3,3 понадобилось для AREF... Вот и получалось что 3,3В это 0,66 от 5В и 169 к 255 тоже получалось 0,66. Еще вопрос, какой правильнее в Протеусе выбирать элемент источника постоянного напряжения, как в приложенном архиве от avr123.nm.ru или может сгодиться источник, который в Пртеусе называется VSOURCE?
А библиотека от PROTEUS 7.2 здоровая и решает она проблему? Кстати еще, замечал кто такой глюк, например, когда нажимаю кнопку сохранить, то Протеус вылетает без предупреждения? Т.е. окно совсем пропадает. Реже при каких-то еще моментах подобное повторяется