Halo Kollegen.
Komme mit Initialisierung einer Struktur nicht weiter.
Mikrokontroller - STM32-F103-Olimex, IDE – Eclipse, Compiler - GCC,
G++
Der Compiler meckert nicht aber die Werte der initialisierten Struktur
sind falsch.
Die Struktur beschreibt einen Zeichensatz (Font) für die Ausgabe am LCD
Display.
1 | //Display.h
|
2 |
|
3 | #parma //--- wird vom Compiler ignoriert ???
|
4 |
|
5 | typedef struct {
|
6 | const short *table; // Tabelle mit den Font Daten
|
7 | short width; // Breite des Zeichens (in Pixel)
|
8 | short height; // Hoehe des Zeichens (in Pixel)
|
9 | }Font_t;
|
Anderen Daten und Code sind im „Display.c“ gesammelt um den Fehler zu
lokalisieren.
Die Font Tabelle (*table).
1 | const short Arial_7x10_Table [] = {
|
2 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Ascii = [ ]
|
3 | 0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00, // Ascii = [!]
|
4 | . . insgesamt 95 Zeilen, je 10 Hex Werte
|
5 | };
|
Initialisierung
1 | Font_t Arial_7x10 = { //Variable Arial_7x10 erzeugen, Typ Font_t
|
2 | .table = Arial_7x10_Table, // Adresse der ZeichenTabelle zuweisen
|
3 | .width = 7, // Schriftbreite setzen
|
4 | .height = 10 // Schrifthöhe . . .
|
5 | };
|
Beim Debuggen - kein Wert stimmt: Variable .width sollte = 7 sein,
.height = 10.
---Bild „StructDaten.png“
Tabelle hat eine falsche Adresse.
---Bild „Tabelle.png“.
Man könnte es mit der Tabellenadresse vergeigen, aber 2 anderen Werte
sind doch DIREKT zugewiesen.
Was mache ich falsch?????