AVR + LED matrix

mpityu elektrolista at freemail.hu
Wed Nov 15 21:57:08 CET 2006


Hali!

Nezd meg ezt:

lorro, majd 
/incoming/_rendezett-OK/konyvek_leirasok/EPE/epe-2006.11.pdf 

van benne egy nagyon egyszeru fenymatrix... hasznalhatod 1:1be 
is.. sw letoltheto az ujsag oldalarol...

Udv:mpityu

On 15 Nov 2006, at 9:53, Pal Lukacs wrote:

> 
> 
> 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 atkerulj
on 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
> -----------------------------------------
>           elektro[-flame|-etc]
> 




More information about the Elektro mailing list