mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16 Bit Adresse für EEProm


Autor: Andreas Riegebauer (blackpuma)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend!

Meine Schaltung funktioniert soweit. Jetzt habe ich das Problem das ich 
ein EEProm habe bei dem ich eine High und eine Low Adresse benötige. Ich 
nehme ein unsigned int und addiere bei jedem Durchlauf 1.

wert++;

Wie spalte ich nun diesen Wert in 2 8 Bit Adressen auf?

Ach fast vergessen: C18 und PIC18F


Danke schon mal für eure Hilfe!
Andreas

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie spalte ich nun diesen Wert in 2 8 Bit Adressen auf?

Du spaltest die 16Bit Adresse in zwei
unsigned char Werte auf.
Das geht z.B. mit schieben (>>8) usw. Einfach mal ins Handbuch
deines C Compilers schauen.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder mit einer union, bester und schnellster Weg.

Autor: Jochen Müller (taschenbuch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne den Compiler zu kennen (scheint ein Geheimnis zu sein) ist schieben 
aber so ziemlich die schlechteste Lösung, jedenfalls von Timing her.

Wenn der Compiler Befehle dafür hat sind bessere Ansätze:
- oberes byte weg-ANDEN, danach byte-swap (mit einer Kopie) und nochmal.
- Befehle nutzen, die direkt das lobyte/hibyte zurückgeben.

Jochen Müller

Autor: morph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C18 ist der compiler

also ich nenn das kein geheimnis.

da dir der name nicht ins auge gesprungen ist, nehm ich an du kennst ihn 
nicht. der C18 basiert am gcc, verhält sich also brav nach ansi.

Autor: Jochen Müller (taschenbuch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>C18 ist der compiler

Stimmt, kannte ich nicht.
Also, wenn er ANSI Standard hat, dann ist ganz klar die Lösung über eine 
UNION das Beste, wurde bereits gesagt. Die kostet keinerlei Rechenzeit 
für eine Trennung der Bytes.

Jochen Müller

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.