Forum: Mikrocontroller und Digitale Elektronik Zaehler mit LCD 16 Bit breite Register


von Einsteiger (Gast)


Lesenswert?

Hallo Leute,

ich habe einen Vorwärtszähler (mit Tastendruck) mit LCD-Azeiger in 
Assembler programmiert und benutze dabei ein Atmega8 und eine STK500. 
Alles funktioniert und der zählt bis 255 dann fängt er wieder auf 0. Ok!

Nun möchte ich nicht, dass er bis 255 hochzählt, sondern über 255. Aber 
dadurch das mein Register 8 Bit breit sind, wie kann ich die im 16 Bit 
breite benutzen.

beigefügt ist mein Code

von Uwe .. (uwegw)


Lesenswert?

Immer wenn dein lowbyte überläuft, das highbyte weiterzählen...

http://www.avr-asm-tutorial.net/avr_de/beginner/sprung.html#Inc

von Johannes M. (johnny-m)


Lesenswert?

Einsteiger wrote:
> Hallo Leute,
>
> ich habe einen Vorwärtszähler (mit Tastendruck) mit LCD-Azeiger in
> Assembler programmiert und benutze dabei ein Atmega8 und eine STK500.
> Alles funktioniert und der zählt bis 255 dann fängt er wieder auf 0. Ok!
So weit so gut...

> Nun möchte ich nicht, dass er bis 255 hochzählt, sondern über 255. Aber
> dadurch das mein Register 8 Bit breit sind, wie kann ich die im 16 Bit
> breite benutzen.
Dazu gibt es einerseits Befehle, die mit zwei Registern (aber nur mit 
bestimmten Registern) einfache Addition und Subtraktion machen können 
(adiw und sbiw). Ansonsten muss man entsprechende Aktionen über das 
Carry-Flag machen (z.B. mit einer Kombination aus add und adc). Dazu 
stehen aber afaik im AVR-Tutorial und in der 
Befehlssatz-Dokumentation von ATMEL (z.B. in der Hilfe vom AVRStudio) 
Beispiele. Das solltest Du Dir am besten mal ansehen.

> beigefügt ist mein Code
Das sehe ich anders...

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.