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

Участник

Группа: Новичок
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Jun 25 2007, 19:21
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(dio @ Jun 25 2007, 01:57)  vooon
спасибо за идею, но хотел бы заострить внимание на суть самого вопроса: способен ли Proteus воспроизвести реально динамическую индикацию? Если да, то как ? Ну а если нет, тогда кто может ? Кто или что может?  Я и протеус тоже это может    Вообже динамика у протеуса работает немного так сказать кривовато. Суть в том что перед засвечиванием следующего сегмента необходимо 1 запереть порты ( DDR) 2 сформировать новую засветку 3 переключить следующий сегмент 4 открыть порты 5 сделать небольшую паузу и томже духе следующий сегмент. В реале работает и без открывания\запирания портов ,так как время нитожно мало ,а протеус реагирует.
|
|
|
|
|
Jun 28 2007, 01:53
|

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

|
Цитата(_Diman_ @ Jun 27 2007, 23:56)  Но иногда протеус сильно выручает, вот например эти часы, я по просьбам почти полностью изменил и отладил в протеусе, и реально их не собирал. Но со мнением SasaVitebsk и haker_fox почти полностью согласен. А в реальном железе они работают? А как быть с различного вида помехами? Их, я думаю, в протеусе не заметишь даже... Было дело, что я вынес датчики температуры (шина I2C) на расстояние 2 м от устройства. При включении лампы дневного света, модуль TWI вис наглухо. А на нем были часы DS1307 и память EEPROM. Проблему решить никак не смог: опыта маловато. Но написал софтовую реализацию этой шины, и вынес на нее датчики температуры. Девайс работал нормально. Это просто пример того, что отладку вести следует на реальном железе. А для отладки программной существует JTAG. Лично я пока обхожусь дисплеем на базе hd44780, который и так будет работать в устройстве, но сейчас попутно на него выводится отладочная информация.
--------------------
Выбор.
|
|
|
|
|
Jun 28 2007, 14:05
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 8-03-05
Пользователь №: 3 160

|
Я радиолюбитель, и микроконтроллеры это только хоби. Так вот, мне протеус очен сильно помогает. А у Вас уже другой вопрос, что следует отлаживать в симуляторе? К примеру аналоговые схемы отлаживаю в микрокапе. Если сами не пользуетесь симмуляторами то зачем других отговаривать, не все же проффесианалы. Я тоже пользуюсь JTAG, и отладочную инфу передаю на комп по UART, но с некоторыми устройствами гораздо быстрей получается в протеусе, чем каждый раз прошивать и смотреть в реале. Цитата(haker_fox @ Jun 28 2007, 05:53)  А в реальном железе они работают? Вот и пример, сравните проект часов на телесистемах и на моей страничке, почти все изменения сделаны в протеус, и все работает. http://telesys.ru/electronics/projects.php?do=p132http://startcd.narod.ru/clock/clock.html
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|