Forum: Compiler & IDEs addition


von hORST (Gast)


Lesenswert?

moinmoin in die Runde

Ich habe einen externen EEPROM dran und will mal das Auslesen testen.
(Muss 16Bit Register angeben)
Und zwar die ersten 15 Bytes hinternander.
Ich weis nicht ob die folgende Addition richtig ist:


  uint8_t i;
  for(i=1;i<16;i++)
  {
  ausgabe(eeprom_read_register(0x0000+i));
  }

Weil der hängt irgendwo. Ist das erstmal richtig?

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


Lesenswert?

Die Addition ist richtig, aber sinnlos: wenn du zu irgendeiner
Zahl eine Null addierst (auch wenn du sie noch so kunstvoll als
0x0000 schreibst :), kommt nur wieder diese Zahl raus.

Dein Anfangswert ist aber falsch: du musst mit i = 0 anfangen.
Das adressiert die erste Zelle.  Die Abbruchbedingung i < 16
ist jedoch korrekt.

von André K. (freakazoid)


Lesenswert?

> Die Abbruchbedingung i < 16 ist jedoch korrekt.
Nö. i < 15 ist richtig. Er will von 0..14 ausgeben (15 Bytes)

Grüße, Freakazoid

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


Lesenswert?

> Er will von 0..14 ausgeben (15 Bytes)

Ach ja, ich war von 16 Bytes ausgegangen.

von hORST (Gast)


Lesenswert?

aber das geht, dass man eine Hex und eine Decimale addiert?
Es muss wieder eine Hex ergeben.

von johnny.m (Gast)


Lesenswert?

Ob Du eine Zahl in Deinem Programm als Hexadezimal- oder Dezimal- oder
Oktal-Wert eingibst, ist völlig unerheblich. Der Compiler macht aus
allen Zahlen zum rechnen Binär-Werte (bzw. Hexadezimal-Werte, wie mans
nimmt, ist auch nur wieder ne andere Schreibweise), da ein
Mikrprozessor nun mal nur mit Binärwerten was anfangen kann! Es ist
lediglich eine andere Schreibweise. Eine als Dezimal eingegebene Zahl
wird nicht im BCD-Format oder ähnlich abgespeichert! Wenn man eine
Zahl als Dezimalzahl auf irgendeinem Display ausgeben will, muss man
sie erst in Dezimalstellen umwandeln. Wenn man im Compiler eine
Konstante zuweist, ist es völlig unerheblich, ob man 15, 017 oder 0x0F
schreibt. Für den Rechner ist alles 1111...

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.