Показать сообщение отдельно
Непрочитано 11.08.2009, 07:44  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 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)