mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lookup Table für Display oder externen Speicher


Autor: Juan Carlos (juan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Juan Carlos (juan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Juan Carlos (juan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Juan Carlos (juan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.