Gast
#1855108
Moin!
Ich versuche, ein über die serielle SS empfangenes Byte, was zuvor am
Bildschirm auf acht Bits individuell zusammengestzt wurde und geschickt
wurde, wieder in 8 Bits zu zerlegen.
Dazu verwende ich folgende, handwerklich liebevoll zurechtgeschusterte
Funktion, jedoch kommen unsinnige Werte bei heraus. Die "gleiche"
Funktion in VB6 funktioniert. Findet jemand einen Schreib-/Denkfehler?
Falls es eine einfachere Lösung des Problems gibt.. bin für alles offen.
Ausser für politische Kommentare.
Schönen Gruß- Stephan
//ersteinmal die Bits definieren ++++++++++++++++++++++++++++++++++++
struct
{
unsigned bit[10];
}x;
//dann meine Funktion +++++++++++++++++++++++++++++++++++++++++++++++
void byte_to_bit (char wert1)
{
int count;
for(count = 1; count <= 8; count++)
{
if(wert1 > ((2 ^ (8 - count) )- 1))
{
x.bit[count-1] = 1;
wert1 = wert1 - (2 ^ (8 - count));
}
else
{
x.bit[count-1] = 0;
}
}
}
//anschließend die "Auswertung" +++++++++++++++++++++++++++++++++++++++
if (x.bit[1] == 1) //Beispielhaft: beigesetztem Bit 1
{
fan_on; //Beispielhaft: fan einschalten
}
else
{
fan_off; //Beispielhaft: fan ausschalten
}