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