Перейти к содержанию
    

dio

Участник
  • Постов

    40
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о dio

  • Звание
    Участник
    Участник
  1. прекрасно, но к сожалению этой настройки нет в 7SEG-COM-CAT компоненте
  2. vooon спасибо за идею, но хотел бы заострить внимание на суть самого вопроса: способен ли Proteus воспроизвести реально динамическую индикацию? Если да, то как ? Ну а если нет, тогда кто может ?
  3. На данный момент нет такой возможности. Что касается Proteus, то время уже потрачено. Кроме того это нужно для следующих проэктов, где макет будет сложно себе позволить. :07: Если честно, не понял, в каком смысле? PIC в глаза не видел :( Извиняюсь, забыл пояснить, что циферблатом является самодельная светодиодная панель, хотя это особо не меняет дела.
  4. Приветствую! Илектронный циферблат с 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, не мог втыкнуть по другому.
  5. Не надо весь массив сразу, один byte более чем достаточно! __no_init _eeprom не помогло, почему-то сбрасывается после RESETa решил проблему иначе: #include <ina90.h> #define ee_address 0x01 char w,r; _EEPUT(ee_address,w); _EEGET(r,ee_address); Огромное спасибо всем за участие :)
  6. спасибо попробуем! а можно как нибудь во flash, думаю будет постабильнее!
  7. :) чтож прийдется согласится В runtime пользователем вводится через клавиатуру 4ехзначный код, который сохраняется в переменной char *mat; mat=GetFromKeyb(); и допустим что mat имеет значение "1234" как его сохранить в камне в любом виде памяти камень: mega8 среда: Iar avr 4.10a
  8. Необходимо сохранить кое какие данные внесенные через 4X4 клаву на m8. Какие будут предложения? Благодарю зарание!
  9. Привет! Сам на данный момент занимаюсь подобным проектом и имею несколько вопросов по поводу соединения модулей и их управлению ! В любом случае это помогло мне быстро усвоить понятие Динамической Индикации Также советую заглянуть сюда.
  10. Proteus 6 ISIS

    Для начала можно последовать их совету :) , т.е. зайти в Licence Manager и проверить что тварится с ключами. Если не ошибаюсь, вы забыли указать файл с ключём.
  11. Бегущая строка

    To AndyBig (иль кто нидь другой, кто понял), огромная просьба. Не могли бы Вы схемно (очень приблизительно) объяснить структуру одного модуля, а то что то не доганяю как можно управлять 8х96 пикс одним МЕГА8. Если можно хотелось бы увидеть соединение модулей с управляющим МЕГА64. Буду премного благодарен за любую помощь.
  12. Сегменты

    Вообще то хочу осуществить несложное меню с ЖКИ и 4х4 клавиатурой. Алгоритм приблизительно такой : for(;;) { Key=KBD_Pressed(); // switch(Key) case 0x01 : Menu1(); break; case 0x02 : Menu2(); break; case 0x03 : Menu3(); break; case 0x04 : Exit(); break; __delay_cycles(16000); } Когда memory model установлено на Tiny, то ругается из за перегрузки сегментов, как я уже говорил, когда же оно стоит на Small , то меню исполняется само по себе в безпорядке, не реагируя на клавиатуру. Всё это длится около 3 сек, пока случайный выбор не упадет на Exit(). Объясните, почему бы так ? :huh:
  13. Сегменты

    Приветствую! Иар жалуется на сегменты (Atmega8) следующим образом : Когда устанавливаю memory model на Small, то в IARе все проходит без ошибок, но на чипе работает в каком то безобразном порядке В list файле с сегментами дело обстоит так: Помогите если не трудно! Благодарю зарание !
  14. Structures & __flash в IAR

    Заработоло !!! :) Была мысль, но как то не придал значения. Премного благодарен ! :)
  15. Structures & __flash в IAR

    struct TProfile { int x; int y; int z; }; __flash struct TProfile profiles[10] = { {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3} }; Компилируется в IAR-е на ура. ;) Попробуйте проверить данные !
×
×
  • Создать...