Vergleich von 16bit Zahlen

Gast #1354192
Guten Tag

Ich arbeite mit einem ATMEGA8 Controller. Momentan bastle ich an einer 
Software PWM mit einer Auflösung von 1024 (10bit).

Die Auflösung habe ich gewählt weil der ADC auch mit 10bit arbeitet. Nun 
müsste ich die 10bit Zahlen miteinander vergleichen, um zu überprüfen ob 
der Grenzwert schon erreicht ist.

Wie würdet ihr das machen? Man könnte natürlich die High und Low 
Register seperat vergleichen und auswerten oder gibt es eine elegantere 
Lösung?

Ich freue mich auf Antworten

Danke

Gruss
Gast
Hallo Typhoon,

bei 10 Bit-Wert in einem Integer werden nur die
Bit 0-9 verwendet. Ist also eines oder mehrere der
Bits 10-15 gesetzt ist der Wert >1023.

Die stehen im HighByte. Ein (HByte&0xfc)!=0 sollte
das Überschreiten anzeigen.

avr
Gast
Hi

>Ich bin relativ neu und konzentriere mich deshalb auf Assembler. Mit C
>befasse ich mich später einmal ;)

AVRs kennen nur 8-Bit-Vergleiche. Also bleibt dir nur dieser Weg.

MfG Spess
Gast
spess53 schrieb:
> AVRs kennen nur 8-Bit-Vergleiche. Also bleibt dir nur dieser Weg.
> MfG Spess

Hallo,

ein Vergleich ist nichts anderes als eine Subtraktion. Du brauchst einen 
Befehl für Subtraktion mit Borrow, den wird es ja wohl geben, damit 
kannst du Berechnungen mit n x 8 bit ausführen.

Beim Hi Register musst du beachten, dass du zum Negieren (zwecks 
Subtraktion) die Bits 15 bis 10 auf den gleichen Wert wie Bit 9 setzen 
musst.

Sowas steht meistens mit Beispielen im Assembler-Handbuch. Überhaupt 
sind Handbücher eine tolle Erfindung.

Gruss Reinhard

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.