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

Обсуждаем цифровые устройства...
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

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

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

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

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

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

Chettuser, спасибо, хоть буду знать как элементы называются, может еще пригодится.
Реклама
Аватара пользователя
timer32
Вымогатель припоя
Сообщения: 599
Зарегистрирован: Сб фев 02, 2008 10:51:52
Откуда: Khabarovsk

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

Сообщение timer32 »

Можно сделать так
Вложения
knopka.rar
(16.35 КБ) 242 скачивания
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

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

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

timer32, огромное спасибо, а вопрос, резисторы с конденсаторами на схеме необходимы? Такая сложная схема, элементов очень много.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
timer32
Вымогатель припоя
Сообщения: 599
Зарегистрирован: Сб фев 02, 2008 10:51:52
Откуда: Khabarovsk

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

Сообщение timer32 »

Вот с одним резистором
Вложения
knopka.rar
(16.01 КБ) 188 скачиваний
Реклама
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

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

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

timer32, спасибо, я просто в восторге от такой схемы.
А может мне еще вот это подскажете?
Wait: ldi r20,loop ;1 такт
M: ldi r17,delay ; 1 такт
M1: dec r17 ; 1 такт
nop ; 1 такт
brne M1 ; 1/2 такта
dec r20 ; 1 такт
nop ; 1 такт
brne M1 ; 1/2 такта
ret ; 4 такт
Вот исходя из этого, нужно рассчитать минимальное и максимальное количество тактов.
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3870
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

12...262917 (при DELAY=LOOP=1...0 соответственно). Такты считать влом. Симулировал в протеусе.
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

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

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

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

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

Сообщение Engineer_Keen »

Я же говорю что не считал такты. Если выводить формулу из результатов симуляции, то получается:

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

N=12+(DELAY-1)*4+(LOOP-1)*1027 при DELAY=1..255,LOOP=1..255
N=12+(DELAY+256)*4+(LOOP+256)*1027 при DELAY=LOOP=0

Если подумать, то 12 получается из количества тактов, при котором весь код выполнится без циклов (простая сумма тактов),
4 - из цикла DEC R17 (1) - NOP (1) - BRNE M1(2), 1027 - из внешнего цикла относительно предыдущего, а единицы отнимаются потому, что сначала происходит вычитание (DEC), а потом сравнение (BRNE).
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

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

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

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

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

Сообщение Engineer_Keen »

Потому что регистры 8-битные. Цикл

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

LDI R16,1
L1: DEC R16
BRNE L1

Выполнится 1 раз, так как регистр уменьшится и станет равен 0 сразу.
То же самое с 255 - выполнится 255 раз. А вот с 0 - выполнится 256 раз, так как после первого DEC в R16 получится число 255 и условие выхода из цикла не выполнится. А выполнится только после того, как R16 пройдет по кругу все значения до 0.
Тема давно ушла от протеуса, остальные вопросы лучше задавать в разделе по МК и ПЛИС
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

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

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

Engineer_Keen, чего это она ушла от протеуса, в той теме не факт, что мне кто-то подскажет, а здесь Вы мне помогаете хорошо.
А в протеусе это можно как-то посмотреть? Запустить схему и посмотреть количество тактов где-нибудь?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3870
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

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

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

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

Engineer_Keen, вот ей богу я не знаю, что такое точки останова. У меня есть рабочая программа и схема в протеусе, вот, а нужный фрагмент в самом конце программы. Может продемонстрируете?
Вложения
Протеус.zip
(19.27 КБ) 190 скачиваний
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

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

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

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

Jack_A, спасибо большое, а число тактов это Cycle Counter?
Roman_Volgodonsk
Родился
Сообщения: 4
Зарегистрирован: Вт ноя 01, 2011 12:30:39

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

Сообщение Roman_Volgodonsk »

У меня очень маленький вопрос - как сделать так, что-бы источник напряжения, выдавал напряжение не относительно земли, а относительно выбранной мною точки?

всё, уже не надо, нашел в SIMULATOR PRIMITIVES ....
Последний раз редактировалось Roman_Volgodonsk Пт апр 13, 2012 12:33:53, всего редактировалось 1 раз.
EmDmAl
Открыл глаза
Сообщения: 51
Зарегистрирован: Чт мар 22, 2012 09:14:18
Откуда: Липецк

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

Сообщение EmDmAl »

Здравствуйте. Не стал создавать новую тему, т.к. эта тема охватывает весь Proteus. У меня Release 7.5 SP3. Решил смоделировать схему подключения МК Atmega32 через COMPIM к физическому МК Atmega32 по USART через FT232RL. Между ними поставил Virtual Terminal для отслеживания сигнала. При подключении к каждому МК отдельно данные успешно передаются. Но при попытки подсоединения Virtual Terminal к общей схеме присоединения этих двух МК, данные передаются только с какого-нибудь одного. Например если по 1ой схеме (Phys_work.gif), то данные отслеживаются с физического МК. Если по 2ой схеме (Virt_work.gif), то отслеживаются с виртуального МК. Как видите из схем разница только в том что Virtual Terminal подсоединяется по разному к прослушиванию линии Rx, Tx.
При попытки подсоединения 2х терминал (two_virt.gif) по разным схемам Rx, Tx сигналы неотображаются вообще.
Как подсоеденить Virtual Terminal, чтобы отслеживались все сигналы идущие как от виртуального МК, так и с физического? С уважением Дмитрий.
Virt_work.gif
(23.86 КБ) 526 скачиваний

Phys_work.gif
(23.99 КБ) 567 скачиваний

two_virt.gif
(15.62 КБ) 531 скачивание
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3870
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

Иринка писал(а):а число тактов это Cycle Counter?

Да.
EmDmAl писал(а):Как подсоеденить Virtual Terminal, чтобы отслеживались все сигналы идущие как от виртуального МК, так и с физического?

Один терминал подключить Rx-ом на одну линию, второй Rx-ом на другую Tx-ы не подключать.
EmDmAl
Открыл глаза
Сообщения: 51
Зарегистрирован: Чт мар 22, 2012 09:14:18
Откуда: Липецк

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

Сообщение EmDmAl »

Engineer_Keen писал(а):Один терминал подключить Rx-ом на одну линию, второй Rx-ом на другую Tx-ы не подключать.

Спасибо, так читаются обе линии. А не подскажите (забыл написать выше) как отправлять команды по линии Tx этим МК в схеме? Создав еще один терминал и повесив Tx(Virtual Terminal) на линию Tx или Rx не решает проблему отправки информации по этой. Или возможно надо все сабирать по другой схеме, например как MAX232?
Последний раз редактировалось EmDmAl Чт апр 12, 2012 21:11:14, всего редактировалось 1 раз.
Ответить

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