Hi ich programmiere gerade einen ATtiny2313 in Assembler, der über ein Schieberegister an den Zeilen und 3 Schieberegistern an den Spalten eine Matrix aus vier 5*7 Matrix-Modulen ansteuern soll. Zeilenmultiplex! Wie kann man am einfachsten sieben mal(7Zeilen) drei Byte(20Spalten) ein Bit nach links schieben(byteübergreifend)? Das ganze liegt im SRAM und dient dazu den anzuzeigenden Text eine Stelle nach links zu schieben. Theoretisch müsste ich doch: 1-linke byte---lsl 2-mittlere byte-lsl--wenn carry set das lsb vom linken byte setzen sonst clr 3-rechte byte---lsl--wenn carry set das lsb vom mittleren byte setzen sonst clr 4-(neue Daten ins lsb vom rechten byte) 5-von 1 an 7 mal, weil 7 Zeilen ..Aber das is so "irrationell". Wenn ich da falsch liege, dann Augen zu und durch.*g* MfG und3rt4ker Vielen Dank
Gast
#674345
Moin, um mehrere Bytes um ein Bit zu shiften ruft man beim ersten LSL/LSR auf und bei den folgenden dann ROL/ROR. LSL und ROL z.B. schieben das links rausfallende Bit in das Carry-Flag, ROL füllt von rechts mit dem Carry-Flag auf. Gruß FreeJack
Hi, gut zu wissen, danke! MfG und3rt4ker
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.