|
Динамическая Индикация + 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
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 28)
|
Jun 24 2007, 21:32
|

Участник

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401

|
http://nix-06.nm.ru/Primer_c/Primer_c_1.htmlправда я теперь делаю немного подругому: определил один раз хедер, теперь использую  Код /******************************************************************************* * Digits.h ******************************************************************************/
#ifndef DIGITS_H #define DIGITS_H
// segment bit def #define DIGIT_0 0 #ifndef DIGIT_H #define DIGIT_H (1<<7) #define DIGIT_G (1<<6) #define DIGIT_F (1<<5) #define DIGIT_E (1<<4) #define DIGIT_D (1<<3) #define DIGIT_C (1<<2) #define DIGIT_B (1<<1) #define DIGIT_A (1<<0) #endif // ifndef DIGIT_H
/* NAME A | B | C | D | E | F | G | H(dp) /* comment */ #define CG_0 DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_0 | DIGIT_0 /* 00, 0 */ #define CG_1 DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 /* 01, 1 */ #define CG_2 DIGIT_A | DIGIT_B | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 02, 2 */ #define CG_3 DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_0 | DIGIT_G | DIGIT_0 /* 03, 3 */ #define CG_4 DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 04, 4 */ #define CG_5 DIGIT_A | DIGIT_0 | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 05, 5 */ #define CG_6 DIGIT_A | DIGIT_0 | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 06, 6 */ #define CG_7 DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 /* 07, 7 */ #define CG_8 DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 08, 8 */ #define CG_9 DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 09, 9 */ #define CG_A DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 10, A */ #define CG_B DIGIT_0 | DIGIT_0 | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 11, B */ #define CG_C DIGIT_A | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_0 | DIGIT_0 /* 12, C */ #define CG_D DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 13, D */ #define CG_E DIGIT_A | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 14, E */ #define CG_F DIGIT_A | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 15, F */ #define CG_c DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 16, c */ #define CG_g DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 17, g */ #define CG_h DIGIT_0 | DIGIT_0 | DIGIT_C | DIGIT_0 | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 18, h */ #define CG_H DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 19, H */ #define CG_J DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_0 | DIGIT_0 | DIGIT_0 /* 20, J */ #define CG_L DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_0 | DIGIT_0 /* 21, L */ #define CG_n DIGIT_0 | DIGIT_0 | DIGIT_C | DIGIT_0 | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 22, n */ #define CG_N DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_E | DIGIT_F | DIGIT_0 | DIGIT_0 /* 23, n_up */ #define CG_o DIGIT_0 | DIGIT_0 | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 24, o */ #define CG_P DIGIT_A | DIGIT_B | DIGIT_0 | DIGIT_0 | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 25, P */ #define CG_q DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 26, q */ #define CG_r DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 27, r */ #define CG_S DIGIT_A | DIGIT_0 | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 28, S */ #define CG_t DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_G | DIGIT_0 /* 29, t */ #define CG_U DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_0 | DIGIT_0 /* 30, U */ #define CG_y DIGIT_0 | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 31, y */ #define CG_MINUS DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_G | DIGIT_0 /* 32, - */ #define CG_OPEN DIGIT_A | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_E | DIGIT_F | DIGIT_0 | DIGIT_0 /* 33, [ */ #define CG_CLOSE DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_D | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 /* 34, ] */ #define CG_LOW DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_D | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 /* 35, _ */ #define CG_GRAD DIGIT_A | DIGIT_B | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_F | DIGIT_G | DIGIT_0 /* 36, ╟ */ #define CG_LAMBDA DIGIT_A | DIGIT_B | DIGIT_C | DIGIT_0 | DIGIT_E | DIGIT_0 | DIGIT_G | DIGIT_0 /* 37, lambda */ #define CG_NONE DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 | DIGIT_0 /* 38, none */
#endif // ifndef DIGITS_H
|
|
|
|
|
Jun 24 2007, 21:48
|

Участник

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

|
Цитата(defunct @ Jun 24 2007, 17:56)  А почему бы не сделать макет устройства и не проверять на нем? На данный момент нет такой возможности. Что касается Proteus, то время уже потрачено. Кроме того это нужно для следующих проэктов, где макет будет сложно себе позволить. Цитата(SasaVitebsk @ Jun 24 2007, 23:01)  Вот это круто.  Я бы не додумался. Вы наверное раньше на PIC музыцировали?  Если честно, не понял, в каком смысле? PIC в глаза не видел  Извиняюсь, забыл пояснить, что циферблатом является самодельная светодиодная панель, хотя это особо не меняет дела.
Сообщение отредактировал dio - Jun 24 2007, 21:39
|
|
|
|
|
Jun 25 2007, 00:06
|

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

|
Цитата(dio @ Jun 25 2007, 06:57)  vooon
спасибо за идею, но хотел бы заострить внимание на суть самого вопроса: способен ли Proteus воспроизвести реально динамическую индикацию? Если да, то как ? Ну а если нет, тогда кто может ? Года два назад пытался ради интереса смоделировать динамическую индикацию в Proteus'е, долго мучился, так ничего и не получилось. На макетке же все работало на ура. Как Вам и посоветовал уважаемый defunct, не тратьте зря время на протеус (ИМХО это игрушка), а спаяйте реальное железо. Вот, можно здесь почитать по протеусу. Цитата(dio @ Jun 25 2007, 05:48)  Что касается Proteus, то время уже потрачено. Не продолжайте его тратить зря... Хотя не совсем зря... Какой-то опыт все-равно будет. Цитата(dio @ Jun 25 2007, 05:48)  Кроме того это нужно для следующих проэктов, где макет будет сложно себе позволить.  Ну так не годится (ИМХО). Нужно собрать нормальную макетку, либо купить готовую и отлаживать на ней софт, железо. Все равно же в конечном счете придется проверять наработки на готовом железе. И наверняка при переносе проекта с протеуса на реальное железо возникнут не легко устраняемые баги. Цитата(dio @ Jun 25 2007, 05:48)  Если честно, не понял, в каком смысле? PIC в глаза не видел  Реализация этого: Код 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; } сильно напоминает программирвоание МК PIC на ассемблере. Подобным образом описывались таблицы, из которых можно было извлечь число, местоположение которого определялось смещением, записанным в регистр w микроконтроллера.
--------------------
Выбор.
|
|
|
|
|
Jun 25 2007, 00:29
|

Участник

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401

|
Цитата(dio @ Jun 25 2007, 02:57)  способен ли Proteus воспроизвести реально динамическую индикацию? Если да, то как ? Ну а если нет, тогда кто может ? один раз мне удалось - увеличил шаг времени, и стало показывать все сегменты.
|
|
|
|
|
Jun 25 2007, 08:09
|

Участник

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

|
Цитата(AndryG @ Jun 25 2007, 07:35)  Нормально Протеус с динамической индикацией работает ... увеличить нужно время реакции у индикаторов и усё работает. прекрасно, но к сожалению этой настройки нет в 7SEG-COM-CAT компоненте
|
|
|
|
|
Jun 25 2007, 19:21
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
В принципе то что я выложил вчера без проверки - работает, но ошибки в инициализации таймеров. Короче в голове. Если сравните сегодняшнюю, то увидите их.  Несколько переписал для удобства. Теперь можно выводить в двух режимах часы:мин и мин:сек. У меня это, естественно, не часы, а, собственно таймер, но принцип понятен. Если надо схему, чтобы понять что к чему, - стучи - выложу. Прога рабочая. Я её проверил. Очень опытный паяльщик оказался.  Сходу нашёл ошибку в верхнем ключе, и исправил.  В результате вместо КП505 были запаяны КТ3107. Резисторы поменяны. Ну и в завершение ЕН-ка запаяна раком. После восстановления схемы - всё заработало.  Да кстати ещё один вариант вот здесь лежит http://nix-06.nm.ru/
Прикрепленные файлы
main.zip ( 2.14 килобайт )
Кол-во скачиваний: 64
|
|
|
|
|
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 27 2007, 16:13
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 17-10-06
Из: Санкт Петербург
Пользователь №: 21 387

|
Для отладки макета пользуюсь подобной макеткой http://www.chipdip.ru/library/DOC000054955.pdfПлюс в том что девайс собирается без пайки за пол-часа. И контроллер, и индикатор, и импульсный преобразователь/кренка, кнопки, светодиоды. Получается полноценный девайс (для отладки  ). При необходимости что то изменить не надо перепаивать, переткнул джампер или поменял резистор/конденсатор. Если компоненты в SMD корпусах, то приходится подпаивать выводы (МГТФ+PLS).
|
|
|
|
|
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
|
|
|
|
|
Jun 28 2007, 18:46
|

Местный
  
Группа: Свой
Сообщений: 329
Регистрация: 22-06-04
Пользователь №: 124

|
Задачи требуют решения. Как и с помощью чего - опыт подскажет. Рассуждения о достоинствах и недостатках того или иного инструмента зачастую навязывают совершенно неверную и субъективную их оценку.
Прикрепленные файлы
Ex_Ind.zip ( 29.64 килобайт )
Кол-во скачиваний: 67
--------------------
Талант не пропить ...
|
|
|
|
|
Jun 28 2007, 22:50
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Я не совсем правильно выразился или, если внимательно почитать Вы не совсем меня правильно поняли. Я не против Протеуса или любой другой программы. Я с уважением отношусь к людям имеющим значительный багаж знаний. Я просто против подхода когда человек знает 150 пакетов а на проверку - ни одного. Если человек досконально знает протеус, то это, безусловно, ему поможет - в том или ином случае. Но у нас люди привыкли прихватом обходится. Там чуть-чуть - там чуть-чуть. Я против этого. На сегодняшний день я уже регулярно использую столько пакетов в своей повседневной работе, что меня уже клинит. Вся моя сущность уже протестует против изучения новых. Я отдаю себе отчёт, что нормально изучить пакет мне не удастся, по причине отсутствия времени и ... желания. Поэтому лучше досконально изучить те несколько пакетов, без которых абсолютно не возможно обходится. Но это сугубо мой взгляд. Он обусловлен моими возможностями к обучению или свойствами моего организма. А человек уникален. Для некоторых, я уверен, всё будет с точностью наоборот. Поэтому здесь нет места рекомендациям. Я просто, обращаю внимание на свой подход. Надо попробовать и так и так - и выбрать свой путь. А главное, я в этом убеждён, я уже написал. Самое дорогое - это Ваше личное время. Не тратьте его напрасно. В 20 лет кажется, что его очень много. Но мне, в мои 40, кажется, что его так мало осталось, и мне безумно жаль что кто-то его тратит легко и непренуждённо.
|
|
|
|
|
Jun 29 2007, 18:01
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(_Diman_ @ Jun 28 2007, 17:05)  К примеру аналоговые схемы отлаживаю в микрокапе. Если сами не пользуетесь симмуляторами то зачем других отговаривать, Чтобы не тратили время на ерунду. Пару раз промоделировать ваши устройства и аналоговые схемы не на программах-симуляторах, а на живых макетах устройств. Спалить пару деталюшек - не страшно, зато схемы потом будете составлять "на глаз" без всяких доп. средств моделирования. Что вы потеряете с таким подходом - пару часов на изготовления макета, немного денег на детали. Что приобретете - максимально приближенную к реальному устройству достоверную модель, опыт изготовления макетов, опыт компоновки схем, опыт проверки железа. Цитата(SasaVitebsk @ Jun 29 2007, 01:50)  +1
|
|
|
|
|
Jun 29 2007, 20:41
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
2Саша Это интегрированый пакет,полностью весь цикл. От написания программы ,до подготовки всей документашии ,списка элементов,печатки,масок фотошаблонов,координат для сверления отверстий станком,принципиальной схемы ,расположения элементов ,автотрассировка и т.д. ну и плюс симулятор ,короче все в одном флаконе. Тоесть в большинстве случаев его хватает одного заметь кучи других пакетов. 2defunct Согласен насчет опыта. Но не согласен в подходах  Я 13 лет занимаюсь разбором полетов в аналоговых и цифроаналоговых схемах , и мне легче застрелиться ,чем учитывать 40 параметров транзистора "на глазок" ,при разработке какокой нибудь приблуды ,заместь микрухи котрую фиг найдеш или стоит просто сказочно дорого. Кстати многие аналоговики пользуются подобными пакетами ,как для симуляции ,так и для расчетов , и совершенно этого не стесняются.
|
|
|
|
|
Jun 30 2007, 05:50
|

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

|
Цитата(bodja74 @ Jun 30 2007, 04:41)  Это интегрированый пакет,полностью весь цикл. От написания программы ,до подготовки всей документашии ,списка элементов,печатки,масок фотошаблонов,координат для сверления отверстий станком,принципиальной схемы ,расположения элементов ,автотрассировка и т.д. ну и плюс симулятор ,короче все в одном флаконе. Тоесть в большинстве случаев его хватает одного заметь кучи других пакетов. Видимо так думают далеко не все, ибо такие пакеты как P-CAD, Protel, Spectra, M-CAP и проч. продолжают жить. ИМХО: лучше у меня будет несколько пакетов программ, но каждый будет делать свою работу идеально (ну или очень близко к идеалу), чем 1 пакет, подчиняющийся формуле: "несколько в одном". А вообще, таких вопросов, как "почему на макетке работает, а в протеусе (VMlab) нет" или "почему в протеусе (VMlab) работает, а на макетке нет", просо не должно задаваться. Ибо далее идут советы, которые направлены на то, чтобы либо протеус подогнать к работающий программе, либо не работающую на рельном железе программу (но отлично работающую в протеусе), подогнать к этому железу... Как верно сказал defunc лучше изготовить макету. Ибо (имхо) возьня с протеусом говорит, что человек еще просто не нашел себя в электронике. Все вышесказанное отношу только к отладке программ для МК, про аналоговую часть молчу. Цитата(bodja74 @ Jun 30 2007, 04:41)  Согласен насчет опыта. Но не согласен в подходах  Я 13 лет занимаюсь разбором полетов в аналоговых и цифроаналоговых схемах , и мне легче застрелиться ,чем учитывать 40 параметров транзистора "на глазок" ,при разработке какокой нибудь приблуды ,заместь микрухи котрую фиг найдеш или стоит просто сказочно дорого. Кстати многие аналоговики пользуются подобными пакетами ,как для симуляции ,так и для расчетов , и совершенно этого не стесняются. Здесь все таки вопросы по-большей части не по аналоговой части, а цифровой (форум по МК).
--------------------
Выбор.
|
|
|
|
|
Jun 30 2007, 06:55
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(haker_fox @ Jun 30 2007, 08:50)  . ИМХО: лучше у меня будет несколько пакетов программ, но каждый будет делать Ну а мне приятнее когда один проект переноситься на все этапы,вот где действительно время экономиться.Чем в каждом пакете создавать один и тотже проект. Ладно ,о вкусах не спорят. Насчет отладки ,я уже и сам давно не пользуюсь,так как задачи давно не по зубам симулятору. лампочками там всякими мигаю,на комп инфу вывожу  Но я всегда выступал за обьективную оценку продукта ,тоесть в любой вещи есть не только слабые стороны но и сильные ,которыми грех не воспользоваться. Цитата(haker_fox @ Jun 30 2007, 08:50)  Здесь все таки вопросы по-большей части не по аналоговой части, а цифровой (форум по МК). Угу,не раз был свидетелем ,когда опытные программеры спотыкались на банальных вопросах по аналоговой части и не знали куда с ними податься ,так как железо это не только один МК на одной плате  ,и не раз был свидетелем когда программер считал себя суперразработчиком железа ,когда кроме того как топтать кнопки на компе- больше ничего не умел
|
|
|
|
|
Jun 30 2007, 17:48
|
Участник

Группа: Новичок
Сообщений: 23
Регистрация: 24-03-07
Пользователь №: 26 485

|
Мдаа... Народ далеко от темы ушел  . Скажу по теме  . Когда я пытался моделировать динамическую индикацию в Протеусе, заметил, что работает она только с индикаторами в несколько цифр в одном корпусе, с одиночными идет видимое переключение с одного на другой.
|
|
|
|
|
Mar 28 2008, 06:37
|
Группа: Новичок
Сообщений: 2
Регистрация: 27-03-08
Из: Витебск прт. Победы 2 - 163
Пользователь №: 36 262

|
С протеусом есть засада в динамической индикации. Решение проблемы в следующем, после засветки индикатора далать паузу от 1 мс. Кстати прога написана верно, поставить нужно только задержку. А по поводу симуляторов. Я Уважаю людей которым уже далеко за 40 а они стараются разобраться с новым софтом и железом. Но Александр вы прекрасно знаете в каком городе мы живем. Если-бы не Стелл мы бы электронщики вымерли как мамонты. Для меня спалить очередной МК из разряда траура, т.к. покупка нового сопряжена с определенными проблемами. И в довесок очень часто я программирую на работе, а всю домашнюю приблуду на работу не потянешь, а протеус позволяет мне в рабочее время спокойненько отлаживать свои устройства.
Вот в довесок код из часов что делал я. В протеусе работает великолепно. В железе пока не собирал, у меня сыну 10 месяцев иногда даж посидеть некогда :-)
unsigned char ind(unsigned char a) // перевод числа в символьное представление { unsigned char b; switch (a) { case 0: // 0 b = 0b00111111; break; case 1: // 1 b = 0b00000110; break; case 2: // 2 b = 0b01011011; break; case 3: // 3 b = 0b01001111; break; case 4: // 4 b = 0b01100110; break; case 5: // 5 b = 0b01101101; break; case 6: // 6 b = 0b01111101; break; case 7: // 7 b = 0b00000111; break; case 8: // 8 b = 0b01111111; break; case 9: // 9 b = 0b01101111; break; } return b; }
void indicator (unsigned char c,unsigned char d,unsigned char e,unsigned char f) // вывод числел на индикаторы { if (PINB.2) { PORTD = c; PORTC.1=0; delay_ms(1); PORTC.1=1; // Второй разряд if (sec%2) // Моргание точечкой каждую секунду { PORTD = d | 0b10000000; PORTC.2=0; delay_ms(1); PORTC.2=1; PORTD = 0; } else { PORTD = d; PORTC.2=0; delay_ms(1); PORTC.2=1; PORTD = 0; }
// Третий разряд PORTD = e; PORTC.3=0; delay_ms(1); PORTC.3=1;
// Четвёртый разряд PORTD = f; PORTC.4=0; delay_ms(1); PORTC.4=1;
} }
// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { indicator( ind(min/10), ind(min%10), ind (sec/10), ind (sec%10) ); }
Сообщение отредактировал DEST Vitebsk - Mar 28 2008, 06:40
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|