Also ich habe einen Wert aus dem Speicher, den ich seriell ausgeben möchte. Der Wert sei jetzt einmal 01010101 Das dumme ist aber, dass ich ihn über zwei register verteilt ausgeben muss. Die Einsen markieren den durch das Bit belegten Platz. 00011111 11100000 Reg. 1 Reg. 2 Muss ich das nun so machen, dass ich alles in Register eins speichere: 11111111 00000000 das erste Bit aus Register 1 auslese und als letztes Bit in Register 2 ausgebe, indem ich den Carry auslese und das dann widerhole?
> dass ich ihn über zwei register verteilt ausgeben muss
Hä? Wer zwingt dich dazu?
Formuliere am besten dein Frage nochmal verständlich, dann benötigst du
vermutlich nicht einmal mehr eine Antwort, weil ohne Durcheinander die
Lösung meist nahe liegt.
jörn
Damit lade/schreibe ich das in den Frag T. Was ist eigentlich T? Temporary? @Joern: Es ist so, dass ich ein 16Bit Schiftregister habe, welches an ein Display angeschlossen ist. Um die Bilddaten zu laden muss ich diese erst in ein Register laden. Die Pins vom Display liegen aber in der Mitte des Schiftregisters, welches durch zwei Register repräsentiert ist, also muss ich das verschieben. HanneS Tipp hat das Problem um mehr als 50% vereinfacht.... Ne, ich glaube es ist sogar noch mehr. Danke für die schnelle Hilfe. Hätte ich das anders gemacht mit SBR und CBR, dann wäre diese Aktion ziemlich fett geworden...
Schieben kann man auch im AVR: Input: r1:r0 (11111111 00000000) lsr r1 ror r0 lsr r1 ror r0 lsr r1 ror r0 Output r1:r0 (00011111 11100000)
Also bei lsr wird das rauslaufende Bit in den Carry geschoben und bei ror wird das Carry in die eine Seite und das überflüssige Bit wieder in den Carry geschoben? Mh das wäre noch einfacher und ich wosste gar nicht, dass das so einfach geht. Danke! Jetzt muss ich mir nurnoch irgendwie die Werte für die ersten 3 Bits des Registers 1 speichern... Aber die sind eigentlich weitgehend konstant...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.