Hallo,
Ich möchte folgenden Code in eine *.h Datei packen, bekomme aber immer
einen Error:
1
#ifndef font_6x8_h
2
#define font_6x8_h
3
4
5
6
7
structfont_6x8
8
{
9
10
unsignedcharfont_6x8_hoehe8;
11
unsignedcharfont_6x8_breite6;
12
};
13
14
15
#endif
Der Error ist:
../Font_6x8.h:10: error: expected ':', ',', ';', '}' or '__attribute__'
before numeric constant
Kann mir da jemand weiterhelfen? Das ganze wird mit AVRStudio erstellt.
Am besten liest Du mal ein C-Buch.
Aber in der Zwischenzeit:
1
structfont_6x8
2
{
3
4
unsignedcharfont_6x8_hoehe8;
5
unsignedcharfont_6x8_breite6;
6
};
Ist erstmal, abgesehen von dem syntaktischen Fehler mit den Zahlen nur
eine Struktur-Deklaration. Nichts sonst. Es wird kein Speicherplatz
reserviert. Das ist, falls das letztlich eine Initalisierung sein soll,
Dein zweiter Fehler.
Also:
1
structfont_6x8
2
{
3
4
unsignedcharfont_6x8_hoehe;
5
unsignedcharfont_6x8_breite;
6
};
ist erstmal eine korrekte Deklaration.
Nun, definieren wir noch eine Variable mit dieser Struktur.
1
structfont_6x8
2
{
3
4
unsignedcharfont_6x8_hoehe;
5
unsignedcharfont_6x8_breite;
6
}StrukturVariable;
Und zu guter letzt initialisieren wir sie:
1
structfont_6x8
2
{
3
4
unsignedcharfont_6x8_hoehe;
5
unsignedcharfont_6x8_breite;
6
}StrukturVariable={8,6};
So. Und wenn Du das ganze nochmal nachliest, dann wäre mir das sehr
angenehm.
Stimmt so ging das, hatte ich schon wieder vergessen aber vielen Dank
für die ausführliche Erklärung:)
Jetzt stehe ich aber vor einem anderen Problem, und zwar habe ich mir
meine Schrift erstellt wie folgt:
1
staticunsignedcharfont_6x8[]PROGMEM={
2
0x06//Breite
3
0x08//Höhe
4
0x00,0x44,0x7E,0x7E,0x40,0x00,//1
5
0x00,0x44,0x62,0x52,0x4C,0x00,//2
6
0x00,0x24,0x42,0x5A,0x24,0x00,//3
7
0x00,0x1E,0x10,0x78,0x10,0x00,//4
8
0x00,0x4E,0x4C,0x4C,0x32,0x00,//5
9
};
Je nach Schrift die ich verwenden möchte, möchte ich einer Funktion
einen anderen Parameter übergeben.
Kann ich das mit Pointern realisieren?
Meine Version sieht bis jetzt so aus:
Das liegt am PROGMEM. Hast du dir durchgelesen, was das bewirkt? Das
schreibt man ja nicht aus Spass hin wenn man nicht weiß, dass es das
überhaupt gibt.
Der Compiler sollte auch schreien.