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
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
das geht so, aber schneller und kleinerer Programmspeicher: const unsigned char tabelle[10]={...,...}; . . . PortA=tabelle[x];
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.