AVR + LED matrix

Pal Lukacs ekegep at yahoo.com
Wed Nov 15 18:53:43 CET 2006


Pal Lukacs <ekegep at yahoo.com> wrote: Sziasztok.
 
 AVR-el szeretnek meghajtani (egyelore) 5 db 5X7 ledmatrixot.
 Elmeleti segitsegre lenne szuksegem .
 Gondoltam hogy a sorokat latchel hajtanam meg,az oszlopok kozott multiplexelek.KIjelzem adott szoveg egy karakterenek egy reszletet a kivant matrixon,aztan a kov. karakter egy reszletet a kov. matrixon ..stb..
 Nem tudom ez mennyire jo megoldas?
 
 Amiben meg segitseg kellene az a karakterek leirasa C -ben,ezek megjelenitesere valami elv,nem haj az az emlitettel parhuzamos:)
 Na meg nem tudom hogy sor -es oszlopra is kell vegfok + aramkorlatozo ellenallas ha 5V -rol akarom uzemeltetni a dolgot..
 
 Segitsegeteket elore is koszonom.
 Udv.
 
 
Szoftnak valami hasonlot kepzeltem el: (ez csak pseudo feleseg)
   
   
 #define MAX_CHARS
   
 //5X7 matrixnal egy karakter 5 allapota:
   
 struct chars_state{
  unsigned char states[5];
 }; 
   
   
 struct chars_states chars[MAX_CHARS] PROGMEM= {
 {0x01,0x05,0x0a,0xA1,0xB2},
 //{},
 //.........
 };
   
 #define pgm_rbn(addr) pgm_read_byte_near(addr) 
 #define DATABUS
 #define ADDRBUS
 #define LATCHEN
   
 struct chars_states* decode_char(unsigned char ch){
   struct chars_states *retV;
   switch(ch){
    case 'a': retV = &chars_states[2]; break;// <--- pl.
   //........
   }
   return retV;
 }
   
 //main loop: in thread:
 //......
   
 struct chars_state ch_s;
   
 unsigned char i;
 unsigned char dot_address = 1 ;
 unsigned char latchs_addr = 1;
 unsigned char n = 0;
   
 //idoosztas
 //......
   
 if(cnt1 == CNT1_THREESHOLD)
 {
    ch_s = pgm_rbn(decode_char(str[n])); // n = max: ahany matrix van!
    BATABUS = ch_s.states[i];//egy karakter allapotai: i-dik allapota.
    LATCHEN = latchs_addr; latchs_addr *= 2; //kapcsoljuk a kovetkezo matrixot
    n++;//lepkedunk a karakterek kozott,kov. karakter reszlete a kov. matrixra
    if(n == 4){ //ha az 5 char hosszu karaktersorozat elso reszlete kikerult a matrixokra:
    flag = 1;//jelzunk
    }
 }
  if(flag){
    latchs_addr = 1; //vissza az elso latchhez:-)
    n = 0; //vissza a karaktertomb elejere
    ADDRBUS = dot_address; dot_address *= 2;//cimezzuk a matrixot:kov.oszlop;
    i++; //adott karakter kovetkezo reszletenek indexe
    flag = 0;
   }
   
 //}
   
   
 Pl. a szoveggorditest nem tudom egyelore elkepzelni.Hogy az egyik matrixbol kilepo adat atkeruljon a masikra.Kellen egy atfogo elmeleti kep az egeszrol:)
   
 HELP PLEASE!
 

 
---------------------------------
Sponsored Link

Mortgage rates near 39yr lows. $420,000 Mortgage for $1,399/mo - Calculate new house payment


More information about the Elektro mailing list