Hallo Zusammen, gucke gerade ein Programm im Internet und der Author hat eine Lookup table, die als Array im PROGMEM definiert ist, für die Darstellung eines Graphics auf einem Display benutzt. z.B. so: const unsigned char ASCII_font[] PROGMEM= { ' ', 0, 0, 0, 0, 0, 0, '!', 0, 0, 95, 0, 0, 0, '"', 0, 3, 0, 3, 0, 0, '#', 20, 62, 20, 62, 20, 0, '$', 36, 42, 107, 42, 18, 0, '%', 34, 16, 8, 4, 34, 0, '&', 16, 46, 41, 22, 40, 0, '\'', 0, 4, 3, 0, 0, 0, }; und was noch ist, der Author hat auch wahrscheinlich nach dem Schaltplan einen externen Speichers nach einer Tabelle adressiert. z.B. so: static const unsigned char adress[] PROGMEM ={ 0,128,2,130,4,132,6,134,64,192,66,194,68,196,70,198, 32,160,34,162,36,164,38,166,96,224,98,226,100,228,102,230, 8,136,10,138,12,140,14,142,72,200,74,202,76,204,78,206, 40,168,42,170,44,172,46,174,104,232,106,234,108,236,110,238, 16,144,18,146,20,148,22,150,80,208,82,210,84,212,86,214, 48,176,50,178,52,180,54,182,112,240,114,242,116,244,118,246, 24,152,26,154,28,156,30,158,88,216,90,218,92,220,94,222, 56,184,58,186,60,188,62,190,120,248,122,250,124,252,126,254}; Über solche Dinge verstehe ich nicht so gut und hoffe, jemand von Euch mir erklären oder einpaar einschlägige Link bzw. Unterlage geben kann. Vielen Danke! Viele Grüße juan
> const unsigned char ASCII_font[] PROGMEM= Das ist keine "lookup table", sondern eine Bitmap-Tabelle. Stelle mal die Dezimalwerte als Binärwerte dar: > '#', 20, 62, 20, 62, 20, 0, 00010100 20 00111110 62 00010100 20 00111110 62 00010100 20 00000000 0 > und was noch ist, der Author hat auch wahrscheinlich nach > dem Schaltplan einen externen Speichers nach einer Tabelle > adressiert. Was dieser Satz bedeuten soll, erschließt sich mir nicht.
Rufus t. Firefly wrote: >> const unsigned char ASCII_font[] PROGMEM= > > Das ist keine "lookup table", sondern eine Bitmap-Tabelle. > > Stelle mal die Dezimalwerte als Binärwerte dar: > >> '#', 20, 62, 20, 62, 20, 0, > > 00010100 20 > 00111110 62 > 00010100 20 > 00111110 62 > 00010100 20 > 00000000 0 > >> und was noch ist, der Author hat auch wahrscheinlich nach >> dem Schaltplan einen externen Speichers nach einer Tabelle >> adressiert. > > Was dieser Satz bedeuten soll, erschließt sich mir nicht. Danke zuerst für die schnelle Antwort. Für das 1. Problem ist schon klar. Zur zweiten Frage: nach dieser Tabelle kann man so machen: z.B. void Speicher_setAdress(unsigned int Addr){ (Tabelle...) BUS_PORT = pgm_read_byte(&adress[Addr]); } Dann werden die entsprechenden Daten in den Speicher geschrieben.
Da hat er wohl die Adressleitungen falschrum angeschlossen. Die Tabelle dreht die Reihenfolge der Bits um, aus 10000000 wird 00000001, aus 01000000 wird 00000010 usw. Bei einem RAM sollte das aber egal sein, nur bei Flashs und anderen ROMs ist die Reihenfolge wichtig.
Benedikt K. wrote: > Da hat er wohl die Adressleitungen falschrum angeschlossen. > Die Tabelle dreht die Reihenfolge der Bits um, aus 10000000 wird > 00000001, aus 01000000 wird 00000010 usw. > Bei einem RAM sollte das aber egal sein, nur bei Flashs und anderen ROMs > ist die Reihenfolge wichtig. Danke. Das ist ja schon richtig, glaube ich. Hast du irgend einen Link oder Unterlagen, wo es dort konkrete Vorstellung über dieses Thema gibt? Viele Grüße Juan
Hallo zusammen, kann ein Erfahrener von Euch mir weiterhelfen? Habe schon im Internet viel geguckt aber nix gefunden. Für Links oder Doku. über dieses Thema (Adrssleitungen mit Matrix, Tabelle) wäre ich herzlich dankbar! Viele Grüße Juan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.