16Bit Timerwert wird ab dem MSB negativ!

OP #1341558
Lesenswert?
• ▲
▼
Hallo Leute,
ich hoffe jemand kann mir weiterhelfen.

Angehängtes Programm soll den aktuellen Timer1 Wert am Display anzeigen. 
Wird der Timerwert zu groß sehe ich plötzlich eine negative Zahl am 
Display.

Dieser Vorzeichenwechsel geschieht genau dann, wenn das MSB des 
Timerwerts kippt. Ich vermute, dass irgendeine Funktion die 1 ganz links 
als Minus interpretiert (2er Komplement). Ich vewende als Variablentyp 
"unsigned short" 0-65535, liegt darin vielleicht das Problem (habe es 
auch mit anderen Typen versucht)?

Gibt es dazu eine elegante Lösung oder liege ich mit meiner Vermutung 
ganz falsch?

mfg martin

ps.: ich habe einen Atmega8 mit 8Mhz im Einsatz, das Display ist ein 
hd44780 display 2*16 zeichen im 4bit modus
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.