Hi
> irgendwie scheint mir mein morgentlicher Kaffee nicht bekommen zu sein,
> denn ich steh bei einer simplen Angelegenheit total auf dem Schlauch!
Das sehe ich auch so. Selbst bei der Beschreibung deines Problems bin
ich etwas ins Grübeln gekommen....
> Ich habe am Eingang meines µCs ein 12bit langes Signal
Oh man, da hab ich doch glatt ein paar Monate meiner Ausbildung
verschlafen...... bisher bin ich bei "Signal" davon ausgegangen, das da
höchstens ein Bit oder irgendeine Spannung dahintersteckt, aber 12 Bit
lang ? Kopfkratz...
Nun ja, was du brauchst, ist ein Doppelregister. Highbyte und LowByte
Dann kannst du schieben und ein beliebiges Bit auswerten, entweder im
High- oder Low-Bereich, einfach dur abfragen des Bits. Die 16Bit
Schiebebefehle hab ich jetzt nicht im Kopf, aber schau mal nach Carrybit
(Schieben mit Übertrag)
Kann aj sein, ich hab das falsch verstanden, und du hast eine
Signalfolge von 12 Bit an einem Eingangspin seriell. Dann brauchst du
dazu einen Takt, um den seriellen Datenstrom auf ein oder 2 Bytes
hineinzuschieben.
Dazu dient das Schieben und eine Or-Verknüpfung mit dem empfangenen Bit
zum Bspl. auf Bit0 deines Empfangsregisters.
in Assembler denk ich mir das so..
LDS Reg_1, InByte
AndI Reg_1,0b00010000 ; Empfangenes Bit ausmaskieren
SHR Reg_1
SHR Reg_1
SHR Reg_1
SHR Reg_1 ; Schieben bis Bit 0 erreicht
Or XL, Reg_1 ; Or Verknüpfung auf Lowbyte von Doppelregister X
SHL X ; XRegister 1 stelle nach links
Aber bitte, der Code ist mit Sicherheit nicht korrekt, da ich hier
keinen Assembler habe, um mir den Syntax anzusehen, der Pseudo-Code soll
nur eine Möglichkeit aufzeigen.
Gruß oldmax