Forum: Compiler & IDEs C verständnis-Frage


von Khan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

Hatte in den falschen Threat geschrieben, hoffentlich bin ich jetzt hier 
richtig.

Aslo ich bin dabei den Code-Schnipsel im Anhang zu verstehen.

Die Numerierten Zeilen verstehe ich nicht, wenn einer von euch mir
helfen kann komme ich ein riesen Schritt weiter.

was ich so verstehe korrigiert mich bitte wenn es falsch ist:

1. Multipliziert den Array inhalt mit 8. Aber warum weis ich nicht
2. Addiert die Adresse 0xA0(anfang des CGRAMs) noch zu address (ich
hätte gesagt das reicht, somit brauchte er eigendlich doch nicht 1.
oder?)
3. Setzt den Zeiger auf den nächsten Byte im Array-Feld, somit wird doch
das erste Zeichen gar nicht in 5. ausgegeben, oder?
4. hier hätte ich den Start adresse erwartet also 0xA0
5. Hier schreibt er die Array-Felder einzeln in den CGRAM

Ich hoffe dass reich als info falls ihr noch was brauch sende ich sie
natürlich sofort...

Grüße
Khan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Khan wrote:

> 1. Multipliziert den Array inhalt mit 8.

Nein, nicht das ganze Array, sondern das erste Element.

> Aber warum weis ich nicht

Vermutlich, weil das die Nummer des anzusprechenden Zeichens im
CGRAM ist, dort aber jedes Zeichen wiederum 8 Byte belegt.

> 2. Addiert die Adresse 0xA0(anfang des CGRAMs) noch zu address (ich
> hätte gesagt das reicht, somit brauchte er eigendlich doch nicht 1.
> oder?)

Doch, s. o.

> 3. Setzt den Zeiger auf den nächsten Byte im Array-Feld, somit wird doch
> das erste Zeichen gar nicht in 5. ausgegeben, oder?

Offenbar steht vor dem ersten Zeichen halt die Nummer des Zeichens
im CGRAM.  Nach 3. dann zeigt "data" auf das erste Byte des Inhalts
des 1. Zeichens.

> 4. hier hätte ich den Start adresse erwartet also 0xA0

Das wäre die Startadresse des ersten Zeichens, du willst aber
mehr als ein Zeichen beschreiben können.  Außerdem besteht jedes
Zeichen selbst aus mehreren (nämlich acht) Bytes, daher das "+ i".
(Man hätte auch statt "address + i" zu schreiben "address++"
schreiben können. ;-)

> 5. Hier schreibt er die Array-Felder einzeln in den CGRAM

Ja, dort wird ein einzelnes Byte des CGRAM beschrieben.

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
Noch kein Account? Hier anmelden.