Gast
#283718
Hallo, ich hab hier derzeit einen uint8_t Array mit 44 Elementen, und jedes enhält eine 1 oder 0 (nicht so günstig gelöst, ich weiß) Nun würde ich z.B. gerne die Elemente 1-4, also 4bit in eine Dezimalzahl (0-15) umwandeln, und das möglichst RAM-schonend, da ich schon ca. 85% voll hab... Es sind insgesamt 11 x 4bit die jeweils einzeln in dezimal gebraucht werden, und die ich am Ende gern in einem 11-Element Array hätte, am besten als String, da ich sie über die USART schicken muss. Ich hab bereits eine Funktion für Binär->Dezimal, aber die Übergabe per Array ist schlecht, da ich 44 bytes reservieren muss, nur um 44 bits abzulegen. Habt ihr da eine Idee, wie man das eleganter lösen könnte? In einer if-Abfrage werden die 44 Bits nacheinander erkannt (1 oder 0) und dann in den Array geschrieben - vielleicht könnte man sie schon ab dem Punkt anders handhaben? Das ganze ist dazu da, um den Datenstrom von diesen 433MHz Funkthermometer/Hygrometer-Sendern die z.B. bei Conrad erhältlich sind, zu dekodieren und an einen PC weiterzuleiten. Ich weiß, ich könnte auch einfach die 1'en und 0'en über die USART schicken und den PC den Rest machen lassen (dort wird sich ein Perl-Script über die Daten hermachen), aber ich hätte das schon gerne fertig dekodiert vom Controller (ATtiny2313). Gruß Dominik