Forum: Compiler & IDEs Anzahl der einsen in einem Byte bestimmen


von Mousse-T (Gast)


Lesenswert?

Hallo zusmamen,

weiss vielelicht jemand wie das geht? Folgender hintergrund: Ich schicke 
immer zwei Bytes aus dem AVR zur seriellen Schnittstelle. Das erste Byte 
soll immer die parität 0 und das zweite Byte die parität 1 haben.

Um das zu realisieren muss ich natürlich wissen wieviel 1en in meinem 
Byte sind. jemand ne Ahnung wie ich das machen könnte?

Danke

Mousse-T

von Εrnst B. (ernst)


Lesenswert?

1
#include <util/parity.h>
2
3
...
4
5
if (parity_even_bit(bytewert)) ...

von Kai G. (runtimeterror)


Lesenswert?

Assembler oder C?

AVRs haben glaube ich kein Parity-Bit.

Im Grunde genommen einfach alle Bits X-Odern. In Assembler kann man ein 
bisschen tricksen.

Ich meine aber, das wäre hier schonmal diskutiert worden.

von Michael Wilhelm (Gast)


Lesenswert?

Die neueren AVRs haben Parität in Hardware:
>• Odd or Even Parity Generation and Parity Check Supported by Hardware

Auszug vom Mega88

MW

von Mousse-T (Gast)


Lesenswert?

Ich konnte in der Suche nichts passendens finden. Aber es geht um C.

Und der ATMEGA 644 hat die paritätsbits. Das klappt auch wunderbar nur 
ich wusste nicht wie ich die einsen bestimme ;-)

@Ernst
Danke muss ich mal probieren.

von Mousse-T (Gast)


Lesenswert?

@ Ernst

Danke es funktioniert ;-)

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.