M. K. schrieb:
> Ich komme mir gerade extrem dumm vor, da ich kaum etwas verstehe,
Lass Dich nicht entmutigen, Jeder muß 'mal klein anfangen.
1 | const char text[] = "++ HELLO WORLD! WIE GEHT'S? **"; //wie wird das
|
2 | abgespeichert? jedes Zeichen extra? also text[4]='E'?
|
Genau, das char text[] ist ein Array, man kann auch Feld dazu sagen.
Hier ist es ein Feld von Zeichen, ein "Array of char".
1 | void char_out (uint8_t zeichen) //wieso steht das so, und nicht im
|
2 | Hauptprogramm?
|
3 | {
|
4 | PORTB=sign[zeichen-32]: //welchen Wert hat ''zeichen"?
|
5 | PORTC=(sign[zeichen-32]>>8);
|
6 | }
|
Das ist eine Funktion. Die steht da, damit man nicht im Mainprogramm
jedesmal den Selben Code wieder schreiben muß. Zeichen hat den Wert, den
Du beim Aufruf der Funktion übergibst. Wenn Du im Hauptprogramm
jetzt char_out('Z') machst, dann ist das Zeichen eben ein Z (bzw. dessen
ASCII-Wert).
1 | PORTC = (sign[i] >> 8); //was mach das? was bringt es mir?
|
Das ist eine Schiebeoperation, auch Shift genannt. >> schiebt nach
Rechts, << schiebt nach links. Die 8 ist die Anzahl der Stellen, um die
verschoben wird. Angenommen Du hast ein byte a mit Wert 00110000 und du
machst jetzt einen Rechtsschift um 3 stellen, also a >> 3, dann ist a
später 00000110.
Ich programmiere keine AVRs, was genau das hier macht, kann ich nicht
sagen. Wird sich aber bestimmt jemand finden, der das weiß ;)
1 | char_out ('M'); // was macht dieser Befehl? denn der uC weiß ja
|
2 | nicht wie ich meine // Anzeige angeschlossen habe.
|
Hier wird die Funktion von oben aufgerufen. Die Anzeige muß natuerlich
so angeschlossen sein, wie es im Buch vorgegeben ist, sonst funktioniert
das natuerlich nicht.
> im Buch waren vorher nur ganz grundlegende Dinge wie Bit setzen, löschen
> und invertieren erklärt und auf einmal so ein Beispiel.
Vielleicht ist das Buch schlecht geschrieben, vielleicht liest Du an der
falschen Stelle oder das Buch setzt Kenntnisse in C eben voraus.
Anyway, das wird schon. Gruß, N.