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