Proteus: вопросы и ответы

Обсуждаем цифровые устройства...
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

SabitofF писал(а):А как правильно использовать кнопку "Авто размещение", а то оно мне говорит задать параметры платы((
Контур платы в слое board задан?

Иринка, задам вопрос по-другому. Как вы будете демонстрировать то, что программа именно по нажатию кнопки именно один раз читает именно АЦП, и результат получается точно правильный? Как на экране будет отображаться результат функционирования программы? Это будет вывод на индикатор или в порт или по какому-либо интерфейсу или через лог диагностики или просто точка останова и просмотр регистров и памяти?
Реклама
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Engineer_Keen, знакома только с точкой останова и просмотром регистров и памяти, значит мне такой вариант подойдет, но я не знаю как доработать для этого программу?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Ну раз так, пусть точка и остается.
Итак..
1) заменить

Код: Выделить всё

LDI R16,0b00100000 
OUT ADMUX, R16 ; Задание входа АЦП и опорного напряжения 
на

Код: Выделить всё

LDI R16,(1<<ADLAR)|(1<<MUX0) ;ADLAR, как и было, но в более читабельной форме. MUX0 - т.к. канал 0 занят кнопкой, с него читать смысла нет, по таблице 75 (стр 206) берем следующий канал
OUT ADMUX, R16 ; Задание входа АЦП и опорного напряжения 
2)

Код: Выделить всё

LDI R16,0b11111111 ; 
OUT ADCSRA, R16 ; Режим работы и запуск (вкл) 
на

Код: Выделить всё

LDI R16,(1<<ADEN)|(1<<ADIE) ;включаем АЦП, и его прерывание, т.к. прога учебная, прескалером пренебрегаем.
OUT ADCSRA, R16 ; Режим работы и запуск (вкл) 
3) в главный цикл втыкаем:

Код: Выделить всё

SBIS PINC,PC0 ;проверяем пин PC0, если не нажата (=1) пропуск
SBI ADCSRA,ADSC ;иначе, запускаем преобразование
4)В ISIS загружается не HEX, а OBJ, иначе не будет видно исходника.
5)Запускаем симуляцию сразу на паузу и в в меню по правой кнопке AVR-source code (если сразу не вылезло)
6) ищем строку "in R17, ADCH" и на ней ставим точку останова
7) запускаем симуляцию, жмем на кнопку, через мгновение программа остановится на точке.
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Engineer_Keen, проделала все по пунктам, но что в протеусе-то продемонстрировалось? По-моему ничего, нужно чтобы при нажатии на кнопку в схеме, которую не получалось подключить что-то происходило, а так в чем демонстрация работы в протеусе? Или это я не догоняю что-то? "запуск преобразования по нажатию кнопки" что это и где это? Какое такое преобразование и по нажатию какой кнопки происходит? Я этого не вижу.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Надеюсь вы догадались исправленную программу скомпилировать?
Если после нажатия на кнопку симуляция остановилась, тогда все сделано правильно и можно объяснять дальше, если нет, значит нужно искать на каком этапе ошибка.
Реклама
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Engineer_Keen, скомпилировала конечно, да, появилась красная стрелочка на строчке in R17, ADCH, красная точка, это точка останова, а появилась еще красная стрелочка, так дальше-то что делать? Что протеусе-то демонстрировать?
Реклама
Друг Кота
Сообщения: 4753
Зарегистрирован: Сб апр 21, 2012 19:21:43

Сообщение Orion33 »

Иринка
Неужели у вас в группе нет симпотишшного мальчика, которого можно пригласить домой помочь решить задания? :love:
Сорри за оффтоп :)
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Orion33, печалька, но нет, у нас 7 человек в группе и никто ниче не понимает как и я, все друг у друга только и спрашивают, а результатов никаких, поэтому я пытаюсь что-то сделать с помощью знающих и шарящих в этом людей. Для тех кто в этом понимает и работал с этим я думаю не очень сложно, а когда я все это первый раз в глаза вижу это уму не постижимо.
Друг Кота
Сообщения: 4753
Зарегистрирован: Сб апр 21, 2012 19:21:43

Сообщение Orion33 »

Иринка
А зачем было такой ВУЗ выбирать? :)
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Orion33, ну так вышло, еще бы сказали зачем такую специальность, здесь так вообще случайно вышло, долго рассказывать, да и не в тему.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Иринка писал(а):Engineer_Keen, скомпилировала конечно, да, появилась красная стрелочка на строчке in R17, ADCH, красная точка, это точка останова, а появилась еще красная стрелочка, так дальше-то что делать? Что протеусе-то демонстрировать?
Если после нажатия кнопки, подключенной в контроллеру, красная стрелочка остановилась напротив красной точки, значит контроллер отреагировал на нажатие кнопки и запустил преобразование, а когда оно закончилось скопировал из регистра ADCH в R17 (на этой строке и остановился, т.к. там стоит точка останова). Если сделать один шаг (в окне исходника сверху справа кнопки), то R17 скорее всего обнулится, т.к. на входе ничего нет. Если подать на этот вход например 5В, то в R17 попадет число 0xFF. Лучше всего подключить к нему переменный резистор средней точкой на вход, а крайними на + и землю. Вот и вся демонстрация.
Вымогатель припоя
Сообщения: 536
Зарегистрирован: Пт ноя 05, 2010 12:53:36
Откуда: Беларусь Витебск

Сообщение Minor/2 »

2 Иринка
Может так понятнее будет? Если чего нужно будет подправить отпиши, подправлю, только, мне кажется, препод, все равно, не пропустит, он же в курсе Ваших знаний :)
Вложения
mega8_ADC.rar
(81.13 КБ) 214 скачиваний
Контактная информация:
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Minor/2, честно говоря ничего не ясно, схема должна выглядеть вот таким образом, а там что-то другое на схеме. Вы поставили индикатор а он не нужен наверно, хотя может и нужен, но нет пробников, вот которые синие, на верхнем вольты должны бежать. И программы в AVR студио я вообще не наблюдаю? Вот наверно вот эта программа подойдет, можете дописать в ней еще что-нибудь, если нужно.
А по заданию вообще нужно доработать программу для запуска преобразования по нажатию кнопки (режим однократного преобразования) и продемонстрировать работу в Proteus ISIS. Т.е как я поняла смысл задания, чтобы там где пробники синие стоят, вольты бежали при нажатии, а что индикатор показывает я не понимаю? Поподробнее, пожалуйста, и hex файл-то есть, а aps файл с самой программой из AVR тоже, пожалуйста, посмотрите мою программу, так-то она должна подходить, если только в ней что-нибудь еще дописать потребуется.
Вложения
11.ZIP
(6.63 КБ) 199 скачиваний
Схема.doc
(28 КБ) 223 скачивания
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Engineer_Keen, что куда подключить вот ей Богу ничего не понятно, дайте файл, пожалуйста.
Вымогатель припоя
Сообщения: 536
Зарегистрирован: Пт ноя 05, 2010 12:53:36
Откуда: Беларусь Витебск

Сообщение Minor/2 »

Вы поставили индикатор а он не нужен наверно
А как тогда наглядно продемонстрировать? И слово наверное уверенности не добавляет :tea:
но нет пробников, вот которые синие, на верхнем вольты должны бежать
Так поставьте и они будут. На верхнем Вольты побегут, если будете нажимать стрелочкой, которая бегает по экранчику, когда мышечкой по коврику водишь, на красненькие кружочки возле переменного резистора.
И программы в AVR студио я вообще не наблюдаю?
Естессссственно. Я пишу в КодВижн (у меня нет AVR studio), но т.к. все равно Си, я приложил Вам исходники... будет желание обязательно разберетесь, а мы поможем, чем сможем.
А по заданию вообще нужно доработать программу для запуска преобразования по нажатию кнопки (режим однократного преобразования) и продемонстрировать работу в Proteus ISIS

Я так и понял... При запуске симуляции на дисплее засвечивается предложение нажать кнопку для запуска АналогоЦифровогоПреобразования, по нажатию кнопки происходит прерывание, в обработчике которого устанавливается (становится еденичкой) бит №6 в регистре ADCSRA, т.о. мы запускаем АЦПреобразование, по завершению которого происходит другое прерывание и на дисплей выводится надпись "Иринкин АЦП", а строкой ниже значение виртуального регистра ADCW, в котором и хранится результат АЦПреобразования. Вот и все. Однократное преобразование завершено, результат на дисплее и будет там пока Вы будете держать кнопку, а как только отпустите контроллер опять выведет на дисплей предложение нажать кнопь для старта АЦПреобразования.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Мда... Похоже вы вообще не в теме...
Ладно объясняю еще раз.
1) Задание было - "запуск преобразования по нажатию кнопки", так? Значит нужно написать такую программу и так соединить детали, чтобы после нажатия на кнопку запускалось преобразование в аналогово-цифровом преобразователе контроллера, так?
2) программа написана, схема собрана (заканчивайте выкладывать схему в doc, нафига это надо если можно схему выложить сразу картинкой да еще и в текст вставить!)
mega8_adc.PNG
(20.25 КБ) 398 скачиваний
Почему кнопка на PC0, а АЦП читаем с PC1 я выше объяснил.
3) Точку останова вы поставили, программа при нажатии на кнопку в этом месте остановилась, значит все, преобразование запускалось и результат его есть. Все, задание выполнено, чего вам еще не хватает? "синие стрелочки"? А зачем они вам? Если и имеет смысл ставить, то только на вход PC1, чтобы было видно как связаны значение АЦП, напряжение и положение среднего вывода резистора.


Minor/2 конечно молодец, что сделал все так подробно и наглядно, хотя в условии вроде был ассемблер...
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Minor/2, а что мне без программы в ассемблере-то делать? Такое преподаватель точно не пропустит.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Если вам все-таки нужна индикация (ага, я так и думал что до этого дойдет), можно занять два свободных порта под пару семисегментных индикаторов. Путем дописания небольшой подпрограмки на них можно выводить результат измерения (в HEX-виде)...
Вымогатель припоя
Сообщения: 536
Зарегистрирован: Пт ноя 05, 2010 12:53:36
Откуда: Беларусь Витебск

Сообщение Minor/2 »

сделал все так подробно и наглядно, хотя в условии вроде был ассемблер...
А это я чет где-то продинамил.... сорри .
Контактная информация:
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Сообщение Иринка »

Engineer_Keen, опять не ясно, ну поставила я пробник, но там вольты не бегают, "преобразование в аналогово-цифровом преобразователе контроллера" где я могу это посмотреть? Я все равно не понимаю.
Вот исправленная программа, как Вы мне вчера сказали и правильная схема в протеусе, в эту схему obj вообще нельзя загрузить, только hex. Так вот мне надо, чтобы где пробник стоит вольты бегали. Объясните, пожалуйста, еще раз с начала.
Вложения
АЦП.ZIP
(20.17 КБ) 189 скачиваний
Ответить

Вернуться в «Цифровая техника»