lookup-table mit C auf AVR mega32

Gast #1017908
Lesenswert?

Hallo Leute,

ich brauche für eine Umwandlung eines ADC Wertes in ein LCD bzw. 
LED-Anzeigen-Wert einen Lookup-Table.

Wie mache ich das ganze in C?

In Asembler ist das kein Problem?? Am einfachsten möchte ich das ganze 
an eine bestimmte Stelle Flash schreiben. Geht das?

Danke schon im voraus!


der-zweite
Gast #1020853
Lesenswert?

Hallo,

in C kannst du die nötige Information in einem Array speichern und 
adressiert darauf zugreifen.

Oder, wenn es mit mehr Komfort funktionieren soll, kannst du den 
Segmenttreiber in einer Case-Anweisung realisieren, die du in einer 
Funktion unterbringst, die man direkt mit dem anzuzeigenden Wert 
aufruft.

Etwa so:

Angenommen deine Segmente werden an PORT A angeschlossen.
Segmentnummerierung:

---1---
|     |
2     6
|--0--|
3     5
|     |
---4---

Eine logische 1 bedeutet, Segment leuchtet.
Gib der Funktion das anzuzeigende Zeichen als ASCII, dann kannst du auch 
einige Sonderzeichen dazubauen.
1
void WriteSegments(char Zeichen)
2
{
3
  switch (Zeichen)
4
  {
5
    case '0': PORTA = 0b11111110;
6
    break;
7
    case '1': PORTA = 0b00001100;
8
    break;
9
undsoweiter... bis 9
10

11
und Sonderzeichen:
12

13
    case 'n': PORTA = 0b00111001;
14
    break;
15
    case 'A': PORTA = 0b11101110;
16
  }
17
}

Der Aufruf geht dann so:
1
WriteSegments('A');    //Das schreibt ein A auf das Display

Viele Grüße,

Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren