Forum: Mikrocontroller und Digitale Elektronik Wie kann 16Bit große Zahlen vergleichen???


von Mesa K. (mesa)


Lesenswert?

Servus,
über einen 10bit A/D-Wandler, erzeuge ich einen drei stelliges ergebnis
(z.B 200) und zige es auf einem Display an.
So jetzt möchte ich vergleichen aber das ergebniss und der andere wert
sind größer wie 8bit. Meine frage ist wie könnte man das realiesieren??
Bitte um Hilfe. Danke Mesa

von Schoaschi (Gast)


Lesenswert?

Geht das nicht normal mit if?!?

Ansonst würde ich probieren es in 8bit Zahlen zerlegen(durch UND und
dann schieben) und danach zuerst das höherwertige Byte vergleichen.
Wenn sie unterschiedlich sind ist eh alles klar. Wenn sie aber gleich
sind, dann musst du auch das niederwertige Byte vergleichen und
aufgrund dessen deine Aussage treffen.

Verstehst du meine gedanken?

PS.: WElche Programmiersprache benutzt du?

von Christoph Kessler (Gast)


Lesenswert?

Hallo
8Bit-Vergleicher 74HC688 sind kaskadierbar, zwei Stück davon reichen
also aus
http://www.st.com/stonline/products/literature/ds/1995.pdf

"A single active low enable is provided to facilitate
cascading several packages to enable
comparison of words greater than 8 bits."

das ist natürlich ein binär-Vergleicher, BCD müßte aber auch
funktionieren
73
Christoph

von Mesa K. (mesa)


Lesenswert?

Servus Schoaschi,
kannst du mir das ein einem beispiel zeigen, wie du das meinst???
Ich programmiere in Assembler.
Danke Mesa

von Profi (Gast)


Lesenswert?

In Asm kannst Du direkt auf das Low- und High-Byte zugreifen.
Also zuerst die beiden High-Bytes vergleichen.
Wenn die verschieden sind, ist eh alles klar.
Wenn sie gleich sind, musst Du die Low-Bytes vergleichen.
Das ist dann das Ergebnis.

von TravelRec. (Gast)


Lesenswert?

Guck mal Atmel´s Appnote bezüglich 16Bit-Arithmetik an: www.atmel.com
oder Atmel DatenCD, dort ist alles sehr genau erklärt.

von Rolf Magnus (Gast)


Lesenswert?

> Also zuerst die beiden High-Bytes vergleichen.
> Wenn die verschieden sind, ist eh alles klar.
> Wenn sie gleich sind, musst Du die Low-Bytes vergleichen.
> Das ist dann das Ergebnis.

Das ist aber schon arg umständlich. Wozu gibt's das Carry-Flag?
Erst die low-Bytes ohne Carry vergleichen, dann die high-Bytes mit
Carry.

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.