реклама на сайте
подробности

 
 
> Динамическая Индикация + Proteus VSM 7, Совместимы ли, че не так делаю ?
dio
сообщение Jun 24 2007, 14:18
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Приветствую!

Илектронный циферблат с 4мя 7ми-сегментными цифрами (в будущем будет часами) реализую с помощью динамики в IAR следующим образом:


Код
#define byte unsigned char
#define dynIndexingTime 20000
#define MaxValue 50

#define CharCodeBusDDR DDRB
#define CharCodeBus    PORTB
#define kathodBusDDR   DDRD
#define kathodBus      PORTD


void my_putChar(byte ind);
byte charTable(byte ind);

byte N1,N10,N100,N1000;

int main( void )
{
  int counter,ind;
  CharCodeBusDDR=0xFF;
  kathodBusDDR=0x0F;

  kathodBus=0xFE;

N1=0;
N10=0;
N100=0;
N1000=0;

counter=0;
ind=0;

for(;;)
{
   counter++;

  if (counter > MaxValue)
  {
   counter=0;
   N1++;
   if (N1>9)   {  N1=0;    N10++;  }
   if (N10>9)  {  N10=0;   N100++;  }
   if (N100>9) {  N100=0;  N1000++;  }
   if (N1000>9){  N1000=0;   }
  }


  if (ind==4) ind=0;
     my_putChar(ind++);

     __delay_cycles(dynIndexingTime);  // Wait

     kathodBus=~((~kathodBus)<<1);
     if (kathodBus==0xEF) kathodBus=0xFE;

}


}


void my_putChar(byte ind) //ind->index "0" -> N1,singles   '1'->N10,decades  '2'->N100,hundreds  '3'->N1000,thousands
{
     if (ind==0) CharCodeBus =charTable(N1);
else if (ind==1) CharCodeBus =charTable(N10);
else if (ind==2) CharCodeBus =charTable(N100);
else if (ind==3) CharCodeBus =charTable(N1000);
}

byte charTable(byte ind)
{
  switch(ind)
    {
    case 0: return 0x3F;
    case 1: return 0x06;
    case 2: return 0x5B;
    case 3: return 0x4F;
    case 4: return 0x66;
    case 5: return 0x6D;
    case 6: return 0x7D;
    case 7: return 0x07;
    case 8: return 0x7F;
    case 9: return 0x6F;
    }
return 0x01;
}



Результаты в Proteusе не соответствуют ожидаемым. Подскажите пжста в чем проблема, может какие настройки специальные в Proteusе или напутал чего?

Благодарю зарание !

Hex File

Proteus 7 file

Извиняюсь за Rapidshare, не мог втыкнуть по другому.

Сообщение отредактировал dio - Jun 24 2007, 14:06
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dio
сообщение Jun 24 2007, 22:57
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



vooon

спасибо за идею, но хотел бы заострить внимание на суть самого вопроса:
способен ли Proteus воспроизвести реально динамическую индикацию? Если да, то как ? Ну а если нет, тогда кто может ?
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jun 25 2007, 19:21
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(dio @ Jun 25 2007, 01:57) *
vooon

спасибо за идею, но хотел бы заострить внимание на суть самого вопроса:
способен ли Proteus воспроизвести реально динамическую индикацию? Если да, то как ? Ну а если нет, тогда кто может ?


Кто или что может? smile.gif

Я и протеус тоже это может smile.gifsmile.gifsmile.gif

Вообже динамика у протеуса работает немного так сказать кривовато.
Суть в том что перед засвечиванием следующего сегмента необходимо
1 запереть порты ( DDR)
2 сформировать новую засветку
3 переключить следующий сегмент
4 открыть порты
5 сделать небольшую паузу
и томже духе следующий сегмент.

В реале работает и без открывания\запирания портов ,так как время нитожно мало ,а протеус реагирует.
Go to the top of the page
 
+Quote Post
_Diman_
сообщение Jun 25 2007, 20:40
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 8-03-05
Пользователь №: 3 160



Динамика в протеусе отлично (в целях отладки) работает. Надо только использовать дисплеи а не светодиодные модели. В настройках дисплея ставится время minimum trigger time. А светодиоды вообще симуляцию вешают, вместо них лучше пользоваться LOGICSTATE ( в место одиночного светодиода), и вообще как почти во всех симуляторах проще и быстрей работает с примитивами. Можете посмотреть на модель моих часов для версии протеуса6,95 http://startcd.narod.ru/clock/proteus16n.rar
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 26 2007, 01:38
Сообщение #5


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(_Diman_ @ Jun 26 2007, 04:40) *
Динамика в протеусе отлично (в целях отладки) работает. Надо только использовать дисплеи а не светодиодные модели. В настройках дисплея ставится время minimum trigger time. А светодиоды вообще симуляцию вешают, вместо них лучше пользоваться LOGICSTATE ( в место одиночного светодиода), и вообще как почти во всех симуляторах проще и быстрей работает с примитивами. Можете посмотреть на модель моих часов для версии протеуса6,95 http://startcd.narod.ru/clock/proteus16n.rar

Вот и получается, что работать приходится на Proteus, а не на реальное железо... + врямя, затраченное на адаптацию программы к реальному железу...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Diman_
сообщение Jun 27 2007, 15:56
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 8-03-05
Пользователь №: 3 160



Но иногда протеус сильно выручает, вот например эти часы, я по просьбам почти полностью изменил и отладил в протеусе, и реально их не собирал. Но со мнением SasaVitebsk и haker_fox почти полностью согласен.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 28 2007, 01:53
Сообщение #7


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(_Diman_ @ Jun 27 2007, 23:56) *
Но иногда протеус сильно выручает, вот например эти часы, я по просьбам почти полностью изменил и отладил в протеусе, и реально их не собирал. Но со мнением SasaVitebsk и haker_fox почти полностью согласен.

А в реальном железе они работают?
А как быть с различного вида помехами? Их, я думаю, в протеусе не заметишь даже... Было дело, что я вынес датчики температуры (шина I2C) на расстояние 2 м от устройства. При включении лампы дневного света, модуль TWI вис наглухо. А на нем были часы DS1307 и память EEPROM. Проблему решить никак не смог: опыта маловато. Но написал софтовую реализацию этой шины, и вынес на нее датчики температуры. Девайс работал нормально. Это просто пример того, что отладку вести следует на реальном железе.
А для отладки программной существует JTAG.
Лично я пока обхожусь дисплеем на базе hd44780, который и так будет работать в устройстве, но сейчас попутно на него выводится отладочная информация.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Diman_
сообщение Jun 28 2007, 14:05
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 8-03-05
Пользователь №: 3 160



Я радиолюбитель, и микроконтроллеры это только хоби. Так вот, мне протеус очен сильно помогает. А у Вас уже другой вопрос, что следует отлаживать в симуляторе? К примеру аналоговые схемы отлаживаю в микрокапе. Если сами не пользуетесь симмуляторами то зачем других отговаривать, не все же проффесианалы. Я тоже пользуюсь JTAG, и отладочную инфу передаю на комп по UART, но с некоторыми устройствами гораздо быстрей получается в протеусе, чем каждый раз прошивать и смотреть в реале.
Цитата(haker_fox @ Jun 28 2007, 05:53) *
А в реальном железе они работают?

Вот и пример, сравните проект часов на телесистемах и на моей страничке, почти все изменения сделаны в протеус, и все работает.
http://telesys.ru/electronics/projects.php?do=p132
http://startcd.narod.ru/clock/clock.html
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dio   Динамическая Индикация + Proteus VSM 7   Jun 24 2007, 14:18
- - defunct   Цитатациферблат с 4мя 7ми-сегментными цифрами (в б...   Jun 24 2007, 15:56
- - SasaVitebsk   Цитата(dio @ Jun 24 2007, 17:18) byte cha...   Jun 24 2007, 21:01
- - vooon   http://nix-06.nm.ru/Primer_c/Primer_c_1.html прав...   Jun 24 2007, 21:32
- - dio   Цитата(defunct @ Jun 24 2007, 17:56) А по...   Jun 24 2007, 21:48
|- - haker_fox   Цитата(dio @ Jun 25 2007, 06:57) vooon с...   Jun 25 2007, 00:06
|- - vooon   Цитата(dio @ Jun 25 2007, 02:57) способен...   Jun 25 2007, 00:29
|- - defunct   Цитата(_Diman_ @ Jun 28 2007, 17:05) К пр...   Jun 29 2007, 18:01
- - SasaVitebsk   В первом приближении написал. Отлажу завтра, а то ...   Jun 25 2007, 00:18
- - AndryG   Нормально Протеус с динамической индикацией работа...   Jun 25 2007, 05:35
- - dio   Цитата(AndryG @ Jun 25 2007, 07:35) Норма...   Jun 25 2007, 08:09
- - SasaVitebsk   В принципе то что я выложил вчера без проверки - р...   Jun 25 2007, 19:21
- - SasaVitebsk   На мой взгляд это со всей очевидностью показывает ...   Jun 25 2007, 22:45
- - IceS   Для отладки макета пользуюсь подобной макеткой htt...   Jun 27 2007, 16:13
- - Hmm   Задачи требуют решения. Как и с помощью чего - опы...   Jun 28 2007, 18:46
- - SasaVitebsk   Я не совсем правильно выразился или, если внимател...   Jun 28 2007, 22:50
- - bodja74   2Саша Это интегрированый пакет,полностью весь цик...   Jun 29 2007, 20:41
|- - haker_fox   Цитата(bodja74 @ Jun 30 2007, 04:41) Это ...   Jun 30 2007, 05:50
|- - bodja74   Цитата(haker_fox @ Jun 30 2007, 08:50) . ...   Jun 30 2007, 06:55
- - smk   Вставлю и свои пять копеек. Когда качал Протеус - ...   Jun 30 2007, 06:39
- - Coolrunner   Мдаа... Народ далеко от темы ушел . Скажу по теме ...   Jun 30 2007, 17:48
- - DEST Vitebsk   С протеусом есть засада в динамической индикации. ...   Mar 28 2008, 06:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01428 секунд с 7
ELECTRONIX ©2004-2016