mikrocontroller.net

Forum: Compiler & IDEs hex werte addieren


Autor: tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich beschäftige mich gerade ein wenig mit einem EEPROM(DS2433)
und nun hänge ich bei einem kleinen Problem:

Für die Adressierung müsste ich Hex Werte Addieren bzw Dezimal und Hex
Werte addieren. Das Funktioniert aber anscheinend nicht so einfach...

Ich Habe einen Bereich von 0000h - 01FFh und den müsste ich durchgehen.
Das ganze lauft so...
ich speichere mir die letzte Adresse zb: 00 03 --> schreibe zb: 2Byte
Daten rein --> Adresse soll auf 00 05 erhöht werden(Wie addiere ich zu
dem Hex Wert die Zahl 2 bzw wie addiere ich 2 Hex Werte?) -->
--> irgendwann ist der Bereich 00FFh erreicht, gibt es da eine Funktion
um zu shifften oder so ähnlich oder mach ich das zb: mit einer if
abfrage???

Kann mir hier jemand ein Code Beispiel schreiben oder die Funktionnen
die ich dazu benötige???


Wem das zu kompliziert ist, einfach sagen was nicht verstanden
wurde...es ist kein sehr einfaches Problem

Danke lg

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt in Wirklichkeit gar keine Hexzahlen, die bildest du dir nur
ein.
:-)

Hex ist nur eine Schreibweise, denk ruhig in Dezimal, wobei du in ein
Byte nur 0-255 reinbekommst, also 3+2=5, wenn du in Assembler schreibst
dann werte bei der Addition das Carryflag aus, und addiere dann 1 zum
Highbyte falls es gesetzt ist.

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aja, wenn du in C schreibst (ist ja das GCC Forum) dann speicher das in
einen 16-bit Integer (uint16_t) und addiere ganz normal. Der Überlauf
ist dann halt erst bei 0xffff.

Autor: tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm danke ;) muss schaun da passt irgendwas anderes auch noch nicht!! der
tipp mit dem uint16_t ist sehr gut....danke.

irgendwie hat das Ding jetzt ein bisschen ein Eigenleben bekommen...ab
0A resetet sich der AVR zwischendrinnen und durchläuft das ganze
Programm nochmal...dabei rechnet er folgendermaßen:

0A...0A --> 0B

dh: er muss es zweimal durchlaufen um die Zahl zu erhöhen...ich Blick
da grad nicht mehr so recht durch...mal bisschen Ruhen lassen!!

lg

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
poste doch mal den Sourcecode. Dann bekommst Du sicher auch mehr Hilfe.

Autor: Michael Leahcim (riegaz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So hier der sourcecode..vielleicht kann mir ja wer helfen :D wäre echt
super!!!


Danke

Autor: Michael Leahcim (riegaz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Für alle, denen es weiterhilft....das Datenblatt!

http://pdfserv.maxim-ic.com/en/ds/DS2433.pdf

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.