mikrocontroller.net

Forum: Compiler & IDEs C verständnis-Frage


Autor: Khan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.