Gast
#238026
Hi. Ich habe gerade etwas Schwierigkeiten wieder in C reinzukommen (2 Jahre Pause, zwischendurch Assembler, PHP, Java und SQL g). Ich programmiere jetzt einen ATmega162 in WinAVR mit der AVR-LIBC (vorher nur Assembler) in C. Vielleicht kann mir jemand mit meinem Code helfen: Also ich lese ein 8-bit-Register an RAM Adresse aus und speichere es in einer Variable. Von diesem Byte einige Informationen: Ist das erste Bit gesetzt? Was ergeben die letzten vier Bits? Beispiel: 1101 1010 -> Erstes Byte gesetzt; Die letzten vier ergeben 10 Das Register wurde bereits mit define als REG benannt. Geht das so (?): ************************************** CHAR temp = REG; if ( (temp>>7) == 1) { panic(); } temp = REG; char anz = (temp & 0x0F); ************************************** Und anschließend muss ich die nächsten anz Bytes hinter der Adresse von RAM auch auslesen (aber nicht mehr prüfen). Gibt es da eine einfache Möglichkeit für? Wäre ziemlich umständlich, wenn ich das so machen müsste: if (anz >= 1) {var1 = REG1;} if (anz >= 2) {var1 = REG2;} . . . if (anz >= 8) {var1 = REG8;} Danke für Eure Hilfe!