bigeggmc,
das kann man z.B. so machen (Rotation nach rechts):
Das Programmstück lässt sich leicht für die Linksrotation modifizierenCode:in r16,PINA ; Input Pins von PortA nach r16 einlesen mov r17,r16 ; Arbeitskopie nach r17 lsr r17 ; schiebt alle 8 Bits um eins nach rechts, setzt Bit7 auf Null sbrc r17,3 ; nächste Anweisung überspringen, wenn Bit3 Null ist or r17,0x80 ; Bit7 auf 1 setzen andi r17,0xF0 ; untere 4 Bits in r17 löschen andi r16,0x0F ; oberer 4 Bits in r16 löschen or r16,r17 ; beide Halb-Bytes in r16 wieder zusammensetzen ; r16 enthält jetzt wieder den urspünglichen Port-Inhalt, aber die ; oberen 4 Bits sind um eins nach rechts rotiert..
mare_crisium






Zitieren

Lesezeichen