Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 27.07.2009, 15:26  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.17. Полезные свойства пробников.
    На Рис. 30 показано окно свойств пробника напряжения, как наиболее "продвинутого" по наличию дополнительных возможностей. Установкой галочки Load To Ground (Нагрузить на землю) мы как бы иммитируем внутреннее сопротивление реального измерительного прибора. При этом в окне Load(Ohm), которое становится доступным для редактирования необходимо ввести значение сопротивления. Установка галочки Record To File позволяет сохранить результаты измерений в файл для последующего использования, однако сразу оговорюсь, что данная функция не работает в интерактивном режиме и жестко связана с функцией Tape (Магнитофон) о которой пойдет речь позже.
    Ну и наконец очень удобная встроенная функция аппаратного прерывания по сигналу пробника. При этом запущенная симуляция встает в состояние паузы. В чем польза данной функции? Допустим, Вам необходимо измерить время между появлениями сигнала логической единицы на каком либо проводе. Устанавливаем Real Time Breakpoint на Digital, а в окне Trigger Value вбиваем 1. Запускаем симуляцию и ждем установки в паузу внизу - считываем время появления сигнала. Повторно "толкаем" симуляцию кнопкой запуска (зеленый треугольник) и по второму останову считываем время появления второго прерывания. Далее используем кто свои мозги, а кто калькулятор для вычисления интервала между прерываниями. Аналогично можно поступить и с аналоговыми цепями, установив режим прерывания Analog, а в окне Trigger Value забив числовое значение напряжения. Окно Am at Time служит для установки времени "включения" режима прерываний. Например, если в предыдущем примере Вы поставите туда значение 2 (2 сек), то пауза возникнет при первом появлении логической единицы на пробнике после двух секунд выполнения симуляции.
    И, забегая вперед, укажу еще одно полезное свойство зондов. Иногда сложно определить, каким образом симулятор PROSPICE интерпретирует ту или иную точку схемы (считает он там сигнал цифровым или аналоговым). Все очень просто определить с помощью зонда. Если в этой точке просчитывается аналоговый сигнал, то зонд будет показывать реальное значение напряжения в числовой форме, а если сигнал цифровой, то одно из девяти значений, принятых для цифровой симуляции (Рис. 31). Эта таблица взята из ProSPICE Help версии 7.4, раздел DIGITAL SIMULATION DARADISM =› Nine State Model. На деле несколько иначе: вместо WUD неопределенное состояние выхода индицируется SUD - имейте это ввиду.
Рисунок 30
Рисунок 31
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic30.gif
Просмотров: 1592
Размер:	11.3 Кб
ID:	1705   Нажмите на изображение для увеличения
Название: Pic31.gif
Просмотров: 1628
Размер:	11.3 Кб
ID:	1706  
Реклама:

Последний раз редактировалось Halex07; 04.11.2009 в 06:18.
Halex07 вне форума  
Эти 27 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
-AnB- (23.03.2011), A-Soft (31.05.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), andron007 (03.01.2023), bi_max (27.09.2011), bz1100 (24.02.2012), ded (06.02.2010), fmp (30.12.2010), icepower (19.09.2011), igor7779 (16.12.2009), kama3er (21.12.2009), leoblp (01.12.2009), MUR2 (13.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (06.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), VooVoo (14.11.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 27.07.2009, 15:27  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.18. Digital Graph - применяем на практике.
    Зонды расставлены, и если мы запустим симуляцию в реальном времени, то можно увидеть мелькание логических значений из таблицы выше на единичных зондах и изменение значений в шестнадцатиричном формате на пробнике, установленном на шину. Пора задействовать график. Так как у нас только цифровые сигналы - логично применить Digital Grath (Цифровой график) для анализа наших сигналов. Его особенность в том, что он позволяет разместить отдельные сигналы на разнесенных по вертикали временных осях, что удобно для их просмотра и анализа. Итак, в левом меню задействуем кнопку Graph Mode, выбираем в селекторе Digitalи на свободном месте листа проекта, удерживая нажатой левую кнопку мыши, растягиваем по диагонали наш будущий график (Рис. 32). Совсем необязательно тянуть как показано стрелкой, можно и снизу вверх и справа-налево, главное по диагонали. Впоследствии можно будет подкорректировать размеры окна графика, щелкнув по нему один раз мышкой и растянув или вертикально, или горизонтально, ну или за угол, зацепив мышью за появляющиеся при этом маркерные черные точки так, как мы делаем в любом графическом редакторе, или в офисных приложениях, например в Word с картинками, или прямоуголными объектами. График размещен и пора добавить на него наши исследуемые сигналы. В протеусе для этого предусмотрены два способа.
    Для особо ленивых: щелкаем один раз по нужному зонду левой кнопкой мыши, чтобы он выделился (стал краснного цвета). Затем зажимаем его левой кнопкой и тянем по экрану на черное поле графика, где бросаем кнопку. В результате слева от вертикальной оси координат появится название нашего пробника, а напротив него горизонтальная временная ось, показывающая абсолютный уровень нуля для этого сигнала.
    Более продвинутый способ: щелкаем правой кнопкой мыши по черному полю графика и во всплывающем меню выбираем опцию Add Traces… В открывшемся окне через раскрывающееся меню выбираем нужный нам сигнал по имени зонда, например Dig1 (Рис. 33). Жмем ОК и получаем тот же результат.
    Чем хорош этот вариант. Сейчас у нас задействован самы простой тип графика, поэтому Trace Type (Tип трассы) и привязку к вертикальным осям - Axis изменить невозможно. Когда мы будем использовать другие типы графиков, эти опции станут активными.
    Использовав любой из способов, я предпочитаю второй, помещаем все нужные нам сигналы на график в требуемом порядке. На рисунке 32 видно, что я разместил сначала сигналы разрядов в порядке справа-налево, а затем общий сигнал шины (он фиолетового цвета).
    Чтобы запустить график на выполнение можно воспользоваться либо всплывающим по правому щелчку меню, как и для добавления сигналов, но выбрать опцию Simulate Graph… , либо просто "топнуть" по клавише пробела на клавиатуре. Сразу обращаю внимание, что если Вы разместите в проекте несколько графиков, то чтобы симулировать нужный - сначала надо его выделить одиночным щелчком левой кнопкой мыши по нему. Результат симуляции нашего графика виден все на том же рисунке 32, но конечно же он нас не устраивает и мы приступаем к изменению параметров графика, чтобы получить приемлемую картинку.
Рисунок 32
Рисунок 33
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic32.gif
Просмотров: 1883
Размер:	13.4 Кб
ID:	1707   Нажмите на изображение для увеличения
Название: Pic33.gif
Просмотров: 1501
Размер:	10.1 Кб
ID:	1708  

Последний раз редактировалось Halex07; 04.11.2009 в 06:23.
Halex07 вне форума  
Эти 24 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
-AnB- (20.03.2011), A-Soft (01.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), bi_max (27.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), icepower (19.09.2011), leoblp (01.12.2009), MUR2 (13.12.2009), Nikopol (11.04.2012), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (06.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 09.08.2009, 09:45  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.19. Свойства цифрового графика.
    Для того, чтобы попасть в окно свойств (Properties) графика используем способ аналогичный работе с любыми объектами в ISIS - двойной щелчок левой по объекту или через контекстное меню правой - Edit Properties (CTRL+E с клавиатуры). Окно свойств показано на Рис. 34.
    Большинство опций понятно из приведенных на рисунке комментариев. Цифровой график наиболее простой с точки зрения наличия свойств. Мы можем поменять ему название, присвоенное по умолчанию, например обозвать его вместо DIGITAL ANALYSIS - DINAMIC INDICATION. Поскольку на вертикальной оси мы располагаем множество цифровых сигналов, параметры ее в данном режиме и лэйблы не работают (их мы рассмотрим на примере других графиков). Флажок Inicial DC Solution (эквивалентный переключателю закрытый/открытый вход осциллографа) в данном случае также не активен. Отдельно остановлюсь на флажке Always simulate. Когда в проекте размещено несколько графиков одного и того же процесса в разных режимах, удаление этого флажка позволяет сохранить график в "неприкосновенности" при манипуляциях с другими. Кнопка SPICE Option обеспечивает быстрый доступ к параметрам симулятора, но менять что-то там без особой надобности начинающим не рекомендуется.
    На данном этапе нас интересуют два конкретных окна - Start Time (начальное время графика) и Stop Time (конечное время графика) по шкале X. По умолчанию это 0 и 1 (напомню о том, что писалось выше - временной параметр без обозначения в секундах). При тактовой частоте микроконтроллера 4 МГц это явный перебор, поэтому мы и видим сигналы сжатой широкой лентой. Уменьшим параметр Stop Time раз в сто для начала - поставим 10m (10милисек) и нажмемOK . На предложение Протеуса Resimulate Graph? ответим утвердительно. Результат на Рис. 35.
    Будьте внимательны. Иногда Протеус "забывает" предложить повтор симуляции, и сам просто меняет масштаб оси Х, сдвигая картинку. Поэтому лучше повторно "толкнуть" симуляцию самостоятельно, если предложения не последовало. Иначе достоверность картинки остается сомнительной.
    Рис. 35.
    Ну вот, картинка при таком масштабе картинка приобрела более приемлемый вид, по которому уже можно анализировать сигналы. Можно и дальше растягивать график указанным способом. Например, вначале от 0 до почти 2 мсек присутствует "мертвая зона" - инициализация микроконтроллера ее можно отсечь, установив Start Time 1.5m. Для подробного анализа нам достаточно одного полного периода индикации (цикла перебора всех знакомест DID1…DIG7). Отмечу, что DIG8 постоянно "висит" в единице, потому что мы находимся в режиме измерения, а этот разряд активизируется при установке параметров цифровой шкалы. Поэтому конечное время - Stop Time можно принять в районе 4m. После таких трансформаций на графике останется только один полный период динамической индикации. С ним мы и продолжим наши изыскания.
Рисунок 34
Рисунок 35
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic34.gif
Просмотров: 1400
Размер:	23.2 Кб
ID:	1709   Нажмите на изображение для увеличения
Название: Pic35.gif
Просмотров: 1423
Размер:	5.4 Кб
ID:	1710  

Последний раз редактировалось Halex07; 04.11.2009 в 06:25.
Halex07 вне форума  
Эти 22 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (01.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), bz1100 (24.02.2012), Daddy_Karlo (20.01.2011), fmp (30.12.2010), icepower (19.09.2011), leoblp (01.12.2009), MUR2 (13.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (06.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), VooVoo (14.11.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 10.08.2009, 00:53  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.20. Дополнительные возможности анализа графика при максимизации окна.
    Дальнейший анализ графика лучше всего проводить в режиме максимизации окна. Для этого через меню правой кнопки при щелчке по графику выбираем опцию Maximize (Show Window). Развернувшееся при этом окно показано на Рис. 36. Оно уже обладает самостоятельными меню и опциями, которые мы сейчас и рассмотрим подробнее.
    Начнем с того, что в этом режиме доступны два вертикальных маркера (на рисунке зеленая и красная вертикальные линии). Первый (зеленый) маркер устанавливается и сдвигается нажатой левой кнопкой мыши. Его положение по оси Х отмечено зелеными цифрами в нижней строке статуса (на рисунке 1.85m). Если при установке маркера навести курсор на конкретную трассу ( в моем примере DIG1), то его положение на трассе отмечается дополнительно крестиком, а в нижней строке статуса указывается значение сигнала в данном месте зеленым цветом (DIG1:SLO) - низкий уровень. Все вышесказанное относится и ко второму (красному) маркеру, но для его установки надо удерживать нажатой клавишу CTRL на клавиатуре. Соответственно все значения, относящиеся к нему в строке статуса красные: 3.53m и DIG1:SLO. Значение DX:-1.68m - это разность положений маркеров по оси X (зеленый вычесть красный - поэтому в данном случае оно отрицательное).
    Что еще полезного мы можем извлечь из нашего графика? Обратите внимание на столбец букв напротив трасс, расположенный у левой вертикальной оси он показывает значения сигналов для зеленого маркера. В данном случае для DIG1 - низкий L, для остальных разрядов высокий - H. Посмотрите на значения сигнала для шины (фиолетовая трасса). Для первых пяти разрядов он соответствует шестнадцатеричной $3F - это ноль на семисегментном индикаторе. Для DIG6=SLO (район 3.1m) этот сигнал - $BF, т.е. добавлена десятичная точка семисегментного индикатора.
    Для особо непонятливых на Рис. 37 приведено окно от встроенного в компиляторы от MikroElectronika (в данном случае microC) декодера для семисегментных дисплеев с изображением нуля. Напомню, что у нас индикатор с общим катодом.
    Ну что же, судя по нашему графику видимых причин для глючности индикации нет, и должно бы все работать, но… не работает.
Рисунок 36
Рисунок 37
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic36.gif
Просмотров: 1573
Размер:	25.6 Кб
ID:	1711   Нажмите на изображение для увеличения
Название: Pic37.gif
Просмотров: 1421
Размер:	7.6 Кб
ID:	1712  

Последний раз редактировалось Halex07; 04.11.2009 в 06:26.
Halex07 вне форума  
Эти 25 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
-AnB- (20.03.2011), A-Soft (01.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), bi_max (27.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), garimas (21.09.2012), icepower (19.09.2011), kama3er (20.12.2009), leoblp (01.12.2009), MUR2 (13.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), retas (06.07.2010), rw54 (02.07.2010), seltec (29.05.2011), Space-r (06.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), VooVoo (14.11.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 11.08.2009, 07:44  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.21. Сравнение с работающим проектом динамической индикации. Находим причину глюка индикации.
    Отложим пока рассмотрение дальнейшее опций графика и обратимся к примеру, содержащему динамическую индикацию, прилагаемому с Протеусом - SAMPLESVSM for AVRAVR Tiny15 Demo 15demo.DSN. Я слегка "модернизировал" его - убрал комментарии разработчика, собрал сигналы сегментов в шину и поместил в проект цифровой график с сигналами разрядов и сегментов четырехразрядного индикатора, примененного в нем.
    Небольшой комментарий для тех, кто попытается самостоятельно разместить в этом проекте график. Если при попытке запустить график на исполнение ISIS ругнется на отсутствие лицензии на модель индикатора 7SEG-MPX4-CA, просто обновите эту модель. Для этого зайдите в библиотеку, найдите эту же модель и дважды щелкните по ней, чтобы она поместилась в селектор объектов. На вопрос Протеуса произвести Update - ответьте утвердительно. Связано это с тем, что по каким-то причинам в этом примере затесалась модель индикатора с ограничением на использование графиков. Для тех, кому некогда этим заниматься я во вложение поместил уже подправленный проект, в котором попутно заменил модель микроконтроллера Tiny15 на модель из библиотеки AVR2.DLL. На одном графике размещен полный период индикации четырех разрядов, а на другом (Рис. 38 ) растянут во времени момент смены первого и второго разрядов. Отметьте, что в данном случае применен индикатор с общим анодом, поэтому сигналы противоположны по уровням по отношению к анализируемому нами частотомеру.
    Для сравнения на Рис.39 помещен аналогично растянутый во времени момент смены пятого и шестого разрядов индикатора частотомера. Я нарочно выбрал этот момент, потому что в данном случае происходит добавление десятичной запятой (сигнал $BF на шине). Обратите внимание на график работающей индикации (Рис. 38 ). На момент смены горящих разрядов (в данном случае логических единиц) на шине сегментов на время около 9.4 микросек появляется сигнал $7F (я выделил его двумя маркерами), т.е. тоже фактически все единицы. Происходит кратковременное гашение разряда индикатора - и с анода единица и с сегментов все единицы. Теперь рассмотрим наш "тяжелый случай" (Рис. 39 ). Мало того, что никакого гашения и в помине нет, так еще и смена сигнала на шине сегментов (зеленый маркер) происходит на 2 микросек раньше, чем смена нулей на катодах.
    Вот и обнаружился глюк индикации. И виноват в этом вовсе не ISIS, честно выполняющий то, что в него заложено создателями, а … ну в общем "стрелочник". Фактически же это выглядит так, как показано на Рис. 40. При отсутствии входного сигнала должны индицироваться все нули и десятичная точка в шестом разряде, а у нас она присутствует еще и в пятом.
    Чуть позже мы займемся "хирургическим вмешательством" в программу для устранения данного явления, а пока необходимо закончить рассмотрение опций графика, выделенных на Рис. 36 желтой подсветкой, иначе многим непонятно будет как я растянул графики на рисунках 38 и 39.
Рисунок 38
Рисунок 39
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic38.gif
Просмотров: 1264
Размер:	20.3 Кб
ID:	1713   Нажмите на изображение для увеличения
Название: Pic39.gif
Просмотров: 1296
Размер:	25.1 Кб
ID:	1714  
Вложения:
Тип файла: rar AVR Tiny15 with Graph.rar (21.4 Кб, 1055 просмотров)

Последний раз редактировалось Halex07; 04.11.2009 в 06:30.
Halex07 вне форума  
Эти 23 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (01.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), andron007 (03.01.2023), bi_max (27.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), icepower (19.09.2011), kama3er (20.12.2009), leoblp (01.12.2009), MUR2 (13.12.2009), nickavia (04.02.2011), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (07.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 11.08.2009, 08:26  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.22. Меню и опции графиков в развернутом (Maximize) окне.
    Для начала рассмотрим верхнее меню.
    File - из этой вкладки график можно распечатать на принтере в цветном или черно-белом формате (Print) или экспортировать в один из предлагаемых форматов (Export Graphics…). При печати и сохранении черно-белого варианта фон белый, а трассы и координатные линии черные. Из графических форматов доступен bitmap (BMP). Можно также сохранить и в формате AutoCAD (DXF). В опциях выбирается разрешение картинки - чем выше разрешение, тем больше объем файла. Обращаю Ваше внимание, что маркеры при этом не сохраняются и не печатаются.
    Опции вкладок View и Graph фактически повторяют кнопки содержащиеся в нижнем тулбаре графика, поэтому мы их рассмотрим подробно здесь же чуть ниже.
    Вкладка Options позволяет обеспечивает прямой доступ к настройкам ISIS, расположенным в меню Template и System из основного верхнего меню ISIS. Наиболее интересна для нас на данном этапе опция Set Graph Colours… (Рис. 41), позволяющая изменять цветовую схему графиков.
    В левой колонке выбираются основные цвета оформления для всех графиков: Outline - линии сетки и координат, Background - фон, Title - заголовки, Text - текст, Tagged - контрольные точки. В средней колонке устанавливаются цвета для шести трасс аналоговых графиков, в правой для цифровых, т.е. для нашего случая. Мы и можем наблюдать на рис. 38,39 бирюзовые трассы сигналов и фиолетовую для шины, используемые по умолчанию. Напомню, что изменять цвета графиков можно и из основного меню ISIS Template -› Set Graph Colours… .
    Вкладка Help обеспечивает доступ к файлу помощи ISIS.
    Теперь рассмотрим кнопки расположенные внизу. Слева-направо в соответствии с всплывающими подсказками.
    Edit Graph, Add Traces и Simulate Graph нам уже знакомы и просто обеспечивают доступ к данным функциям без свертывания окна графика.
    Две кнопки со стрелками влево и вправо Pan Graph… позволяют горизонтальную прокрутку в указанных направлениях.
    Кнопки Zoom In и Zoom Out (лупы с плюсом и минусом) позволяют увеличить/уменьшить горизонтальный масштаб. А вот следующие две более продвинутые.
    Zoom To View Entire Sheet - сжимает график в тот временной масштаб, который задан первоначально позициями Start Time и Stop Time.
    Zoom To Area - включает курсор в режим выделения площади (белый квадрат с прицелом), после чего можно, удерживая нажатой левую кнопку мыши, выделить участок для увеличения. Для Digital Graph масштабирование происходит только по оси X. Именно этим режимом я воспользовался несколько раз, чтобы растянуть нужные участки графика так, как показано на рис. 38,39.
    И еще одно важное замечание. После того, как вы масштабировали график и свернули его - щелчком по кнопке X в правом верхнем углу, или через контекстное меню правой кнопки мыши - опция Restore (Close Window) - в окне проекта оно будет показываться уже в новом, измененном масштабе.Вот и все, что хотелось бы отметить по работе с графиками в развернутом виде.
Рисунок 40
Рисунок 41
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic40.gif
Просмотров: 1539
Размер:	56.4 Кб
ID:	1716   Нажмите на изображение для увеличения
Название: Pic41.gif
Просмотров: 1003
Размер:	28.4 Кб
ID:	1717  

Последний раз редактировалось Halex07; 04.11.2009 в 06:32.
Halex07 вне форума  
Эти 21 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
-AnB- (23.03.2011), A-Soft (01.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), bi_max (27.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), icepower (19.09.2011), kama3er (20.12.2009), leoblp (01.12.2009), MUR2 (13.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (07.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), ДимаК (21.06.2011)
Непрочитано 11.08.2009, 08:46  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.23. Подключаем файл микропрограммы для пошаговой отладки.
    До сих пор мы использовали для симуляции прошивки микроконтроллера файл формата Intel Hex. Этобыло вполне приемлемо, пока нам не требовалось вносить изменений в программу. Но мы уже нашли причину нашей неудачи и пора попробовать избавиться от нее. Вот и настал черед подключения ассемблерного файла DigiScal.asm. Прежде, чем мы начнем заниматься "пластической хирургией" - сделайте резервную копию всей папки с проектом. В будущем этот шаг избавит Вас от поисков оригинала проекта, который к концу "операции" может быть изуродован до неузнаваемости. Итак мы вновь открыли наш проект и для подключения файла, написанного на ассемблере или "асме" на сленге эмбедеров нам необходимо войти в меню Source и выбрать опцию Add/Remove Source Files… . Откроется окно показанное на Рис. 42.
    Последовательность присоединения файла программы к проекту и ясна из коментариев на рисунке. Остановлюсь на некоторых особенностях. Если в проекте используется более одного микроконтроллера на первом шаге надо выбрать нужный для конкретного файла.
    На втором шаге выбирается компилятор, подходящий для данного микроконтроллера ну и конечно ассемблерного кода. В Протеусе 7.4 доступны следующие прилагаемые с программой компиляторы:
    ASEM51 для МК серии MCS-51;
    ASM11 для МК Motorola MC68HC11;
    AVRASM2 для МК Atmel AVR;
    MPASM и MPASMWIN для МК Microchip PIC.
    Все они расположены в папке Tools установленного Протеуса и список их по мере выхода новых версий пополняется. Почему я выбрал именно виндозную версию MPASMWIN? Просто она мне кажется более дружелюбной в отношении интерфейса. Кроме того, некоторые компиляторы командной строки (в частности MPASM) требуют соблюдения DOSовского формата имени файла (семь плюс один символов имя и три расширение) и если имя файла будет, например, DigiScal12.asm выплюнут ошибку компиляции.
    Хочу здесь остановится еще на одном нюансе. Не всегда Протеус содержит "свежие" версии компиляторов. Здесь можно прибегнуть к следующей операции, например для того же MPASM. Если у Вас установлена одна из последних версий MPLAB IDE, откройте через меню Source опцию Define Code Generation Tools… (Рис. 43 ). Укажите путь к новому компилятору через кнопку Browse. При необходимости измените опции командной строки (Comand Line) и путь Debug Data Extraction.
    На третьем шаге нам необходимо указать наш файл DigiScal.asm. После чего жмем ОК. Напомню, что идеально, когда файл с листингом ассемблера лежит в той же папке, что и проект ISIS.
    Дальше можно было бы просто запустить симуляцию проекта и Протеус сам автоматически скомпилирует новый DigiScal.HEX перед началом симуляции. Но я все же рекомендую предварительно воспользоваться опцией Build All… из меню Source. При этом симуляция не запускается, а включается в работу только компилятор. Если все пройдет нормально, то откроется окно BUILD.LOG, содержащее отчет об успешной компиляции файла. Если в нем содержатся красные сообщения об ошибках, значит компиляция завершилась неудачно. Необходимо найти и исправить ошибки в листинге программы. Обычно содержится перечень строк, содержащих ошибки. Для поклонников PIC остановлюсь еще на одной особенности. Иногда попытка скомпилировать чужой листинг завершается неудачно из-за отсутствия в начале программы всего одной строки: LIST p=‹тип МК›. Применительно к нашему случаю она должна выглядеть как: LIST p=16F84.
    После удачного завершения компиляции в папке с проектом должен появится файл DigiScal.SDI, формируемый Протеусом на этапе компиляции. Именно это файл и позволяет пошаговую отладку ассемблерной программы.
Рисунок 42
Рисунок 43
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic42.gif
Просмотров: 1335
Размер:	13.9 Кб
ID:	1718   Нажмите на изображение для увеличения
Название: Pic43.gif
Просмотров: 1395
Размер:	45.4 Кб
ID:	1719  

Последний раз редактировалось Halex07; 04.11.2009 в 06:34.
Halex07 вне форума  
Эти 24 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (01.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), bi_max (27.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), garimas (21.09.2012), icepower (20.09.2011), kama3er (20.12.2009), leoblp (01.12.2009), max7533 (26.10.2009), MUR2 (13.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (11.05.2010), Tischon (21.01.2011), Traan (16.09.2013), Vladim00 (10.12.2014), ДимаК (21.06.2011)
Непрочитано 11.08.2009, 08:58  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.24. Режим пошаговой отладки программы в ISIS.
    После того как подключен ассемблерный файл к проекту, мы получили возможность пошаговой отладки со всеми вытекающими из этого возможностями. По счастью автор частотомера приложил ассемблерный листинг удобоваримый для компилятора и после команды Build All… мы получили подтверждение об удачной компиляции ассемблерого файла (Рис. 44).
    Чтобы войти в режим пошаговой отладки мы для запуска симуляции воспользуемся кнопкой Pause или кнопкой Step вместо обычной Play. При этом включится подсветка кнопок Play и Pause, а на экране появится окно CPU Source Code в котором представлен ассемблерный листинг программы, а курсор выполнения (красный треугольник слева) установлен на первой строке, расположенной по адресу $0000 в ПЗУ программ, соответственно подсвечивается и вся строка (Рис. 45). Колонка адресов ПЗУ программы микроконтроллера в данном случае бирюзового цвета слева в окне. Обратите внимание, что зеленые коментарии, находящиеся в листинге тоже отображены, но адресов не имеют - стоят прочерки, поскольку при компиляции в исполняемый код они выбрасываются. Однако, при переходах по номеру строки (Goto Line) они учитываются, так как занимают строку в листинге программы. Здесь надо четко представлять различия - треугольник это указатель выполняемой строки, а подсветка - это "курсор" выбранной строки.В правой верхней части окна расположены кнопки управления пошаговым режимом (на рисунке я подсветил их желтым цветом). Вот здесь и скрываются огромные возможности симулятора по сравнению с реальным устройством. Используя режим пошаговой отладки мы можем в любой момент исследовать что творится не только на внешних выводах микроконтроллера, но и в его "внутренностях". Давайте для начала познакомимся с назначением кнопок, а потом попробуем применить их в действии. Как обычно слева-направо, начиная с кнопки с изображением бегущей фигуры (Run simulation). Эта кнопка просто запускает продолжение симуляции, снимая ее с паузы, ну или с точки останова (Breakpoint).
    Следующие три кнопки: Step Over Source Line, Step Into Source Line, Step Out from Source Line позволяют выполнить код пошагово соответственно до конца текущей строки, в текущей строке, с выходом из текущей строки.
    Неактивная кнопка Run To Source Line (Выполнить код до текущей строки) станет доступной, если вы выделите щелкнув левой кнопкой мыши какую либо строку кода программы. При этом курсор текущей выполняемой строки остается на месте, а подсветка переместится на выбранную строку. Запуск кнопкой Run To Source Line вызовет выполнение программы до достижения выделенной строки.
    Ну и наконец Toggle Breakpoint - переключатель точек останова. Каждый щелчок по этой кнопке переключает точку останова в выбранной (подсвечиваемой) строке следующей последовательности:
    "установить и активизировать" =› "деактивировать" =› "удалить".
    Активная точка останова выглядит как закрашенный красный круг, неактивная - как красная окружность с белой серединой. Точки останова позволяют нам прерывать выполнение программы в строго указанных местах.
Рисунок 44
Рисунок 45
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic44.gif
Просмотров: 1024
Размер:	5.1 Кб
ID:	1720   Нажмите на изображение для увеличения
Название: Pic45.gif
Просмотров: 1320
Размер:	33.8 Кб
ID:	1721  

Последний раз редактировалось Halex07; 04.11.2009 в 06:36.
Halex07 вне форума  
Эти 26 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (08.06.2016), ABrej (06.04.2010), Alex0416 (01.10.2010), alexandr156 (16.03.2011), bi_max (28.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), garimas (21.09.2012), icepower (20.09.2011), kama3er (20.12.2009), kt368bm (10.09.2010), leoblp (01.12.2009), max7533 (26.10.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), Space-r (11.05.2010), Tischon (21.01.2011), Traan (16.09.2013), vank (01.12.2010), Vladim00 (10.12.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 13.08.2009, 08:04  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.25. Контекстное меню окна пошаговой отладки.
    Кроме верхних кнопок управления отладкой многие опции спрятаны в контекстное меню, вызываемое по правой кнопке мыши щелчком внутри окна CPU Source Code в режиме паузы. Вид меню представлен на Рис.46.
    Окно поделено на пять секций. Верхняя опция Dissasembly в данном случае неактивна. Да и куда уж дальше разворачивать код, если мы и так в низкоуровневом ассемблере. Но когда позже мы будем подставлять в качестве исходного кода листинги на языках высокого уровня Си, а кто нибудь и Basic - эта функция нам здорово поможет, т.к. позволяет развернуть строку Си в коды ассемблера. Замечу, что именно таким образом и был обнаружен глюк библиотеки AVR2.DLL при выполнении переходов RJMP и RCALL. Сначала была найдена функция на Си, вызывающая ошибку, затем развернута в ассемблер и найдена конкретная команда - RJMP.
    Следующие две команды Goto Line… и Goto Addresss… переведут текущее положение выбранной строки (подсветку) по указанному номеру (адресу в ПЗУ программ МК). Различия их в том, что в первом случае вы вводите десятичный номер строки, а во втором шестнадцатиричный адрес ПЗУ программ, например так: 0х007E. Конечно, имея в голове "калькулятор" для перевода десятичных значений в шестнадцатиричные, можно и адрес вводить в десятичном виде, но Вам оно надо?
    Опции Find… (Поиск) и Find Again… (Повторный поиск - становится активной после выполнения первого поиска) ничем не отличаются от аналогичных в других программах и ищут слово (фразу) и т.д. в соответствии с заданными условиями: регистр, слово целиком, вперед, назад…
    Следующая группа команд управляет брекпойнтами (точками останова). Первая из них Toogle… - фактически повторяет кнопку в верхенм меню. Следующие три: Enable (активировать), Disable (дезактивировать) и Clear (очистить) выполняют данные действия сразу для всех установленных брекпойнтов. Установка флажка Fix-Up Breakpoins On Load - активирует все установленные точки при перезапуске симуляции.
    В следующей группе установкой флажков активируется показ соответствующих колонок в окне CPU Source Code . Display Line Numbers - покажет номера строк, включая и комментарии. Display Addresses - уже установлен, показывает адреса по которым в ПЗУ программ МК расположены команды ассемблера. Установив флажок Display Opcodes , Вы увидите шестнадцатиричные коды записываемые в ПЗУ напротив соответствующих адресов.
    Ну и последняя группа Set Font… и Set Colours… - позволяет настроить вид окна CPU Source Code: шрифт текста и цветовую гамму в соответствии с вашими вкусами и привычками.
    Примечание от dosikus: Чтобы не иметь проблем с отображением русского текста в окнах, необходимо выбирать шрифты, поддерживающие кириллицу (Рис. 46А ).
Рисунок 46
Рисунок 46A
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic46.gif
Просмотров: 1006
Размер:	5.8 Кб
ID:	1722   Нажмите на изображение для увеличения
Название: Pic46А.gif
Просмотров: 1130
Размер:	12.6 Кб
ID:	1723  

Последний раз редактировалось Halex07; 04.11.2009 в 06:37.
Halex07 вне форума  
Эти 25 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (08.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), andron007 (05.01.2023), bi_max (28.09.2011), bz1100 (24.02.2012), fmp (30.12.2010), garimas (21.09.2012), icepower (20.09.2011), leoblp (01.12.2009), MUR2 (14.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), seltec (29.05.2011), Space-r (11.05.2010), Tischon (21.01.2011), Traan (16.09.2013), vank (01.12.2010), vitalgolov (30.09.2010), Vladim00 (10.12.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
Непрочитано 13.08.2009, 08:10  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,507 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию

  • 2.26. Меню Debug в развернутом виде.
    При первом знакомстве с интерфейсом ISIS я умышленно пропустил эту вкладку верхнего меню. Но теперь, когда мы вплотную занялись симуляцией проекта, настала пора познакомится с ним поближе. Тем более, что в режиме паузы при симуляции схем, содержащих микроконтроллеры там вылезают такие опции, которых в других случаях Вы не увидите. Итак, поставим наш проект в режим паузы и откроем эту вкладку (Рис. 47 ). Да, тут есть где порезвиться. Попробуйте открыть эту вкладку не запуская симуляции и, как гласит избитая телереклама, - "почувствуйте разницу". Давайте "осваивать" именно развернутую при симуляции версию. Здесь тоже схожие команды сгруппированы по секциям. Верхняя секция дублирует кнопки управления симуляцией и в комментариях не нуждается. Первая опция второй секции - Execute нам также знакома по аналогичной кнопке окна CPU Source Code. А вот следующие две представлены только здесь. Execute Without Breakpoins (Alt+F12) - вызывает запуск симуляции с игнорированием установленных брекпойнтов, а Execute For Specified Time - вызывает окно в котором мы предварительно задаем время для перевода симуляции в режим паузы. По умолчанию предлагается 1, как вы уже догадались одна секунда. Тоже весьма полезная "фишка".
    В следующей группе тоже знакомые нам по окну CPU Source Code команды. Хм, ошибочка вышла - прилепил рисуночек от версии 7.5 а в ней новая опция Animate, которой раньше не было. Сейчас мы ее… Ну в общем тоже полезная штука. Инициирует симуляцию в "заторможенном" режиме, при этом в окне CPU Source Code подсветка строки пошагово показывает процесс выполнения. Кто пользовался симуляцией в MPLAB, AVR Studio или других отладчиках уже имели удовольствие наблюдать такой режим.
    Следующая группа объединяет опции, которые представляют значительный интерес. Reset Popup Windows и Reset Persistent Model Data на картинке неактивны. Они позволяют сбросить в исходное состояние соответственно всплывающие окна и данные в ПЗУ (не путайте с памятью программ) моделей микроконтроллеров, флэш-памяти и других устройств, содержащих ПЗУ. Это возможно только когда симуляция не запущена. Состояние всплывающих окон по умолчанию представлено в последней группе. Галочкой отмечено только окно PIC CPU Source Code - которое мы и видим в режиме паузы. Если вы случайно или специально закроете это окно (щелчок по X в правом верхнем углу), то при следующей паузе симуляции оно не "всплывет". Добыть его обратно можно двумя способами: через опцию Reset Popup Windows, но при этом и все остальные окна встанут в исходное, или в режиме паузы восстановить галочку щелчком левой кнопкой мыши по PIC CPU Source Code в последней группе (Рис. 47). После закрытия окна PIC CPU Source Code в режиме симуляции галочка будет отсутствовать. Второй способ хорош тем, что вы не сбрасываете режимы остальных окон.
Рисунок 47
Миниатюры:
Нажмите на изображение для увеличения
Название: Pic47.gif
Просмотров: 1120
Размер:	10.2 Кб
ID:	1724  

Последний раз редактировалось Halex07; 04.11.2009 в 06:38.
Halex07 вне форума  
Эти 28 пользователя(ей) сказали Спасибо Halex07 за это сообщение:
A-Soft (08.06.2016), ABrej (06.04.2010), alexandr156 (16.03.2011), andron007 (05.01.2023), bi_max (27.09.2011), bz1100 (24.02.2012), ded (06.02.2010), fmp (30.12.2010), kiNlA (06.12.2010), leoblp (01.12.2009), Paulwasw (27.11.2012), ReLe1 (14.08.2011), rw54 (02.07.2010), Saadov (17.11.2010), seltec (29.05.2011), Space-r (11.05.2010), Tischon (21.01.2011), Traan (16.09.2013), vank (01.12.2010), Vladim00 (10.12.2014), wct_sniaper (29.01.2010), ДимаК (21.06.2011)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
Linux-ваше мнение Tvenn Делимся опытом 6169 23.08.2015 08:57
Pictiva TM 128 X 64 OLED Module (SSD0323) + AVR + PROTEUS - рабочий проект для начинающих OttoStirliz Микроконтроллеры, АЦП, память и т.д 8 28.05.2010 16:59


Часовой пояс GMT +4, время: 02:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot