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