Forum: Mikrocontroller und Digitale Elektronik Rechnen mit ADC-Ergebnis


von Peter (Gast)


Lesenswert?

Hallo Zusammen!

Ich habe eine Frage zur Auswertung meiner AD-Wandlungen:

Ich verwende den ATtiny15 und erhalte mit dem AD-Wandler ein 10-bit
genaues Ergebnis (ich benötige alle 10 bits). Das Ergebnis steht nun in
zwei Registern,  da ja 10 bit nicht in einem Register unterzubringen
sind. Ich möchte nun von diesem 10-bit Ergebnis eine weitere 10-bit
Zahl subtrahieren.

Wie muss ich das machen, damit es arithmetisch korrekt ist? Ich bin mir
unsicher...

Danke für alle Tips!!!

Peter.

von Peer (Gast)


Lesenswert?

Hi,
ich würde das so machen, die 10 bit Zahlen sind doch in 8bit Blöcke
geteilt. Erst muss man die beiden niederwertigen Bit blöcke von
einander abziehen und zwar so das man einen Übertrag bzw. ein Carry
bekommt. Dann zieht man das Carry von dem Höherwertigen Teil des
Ergebnisses der AD_Zahl ab und dann subtrahiert man noch die
höherwertigen Bits.
Dann mus das Ergebniss halt auch noch schrittweise wieder in zwei Bits
gespeichert werden.
Also viel Glück.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

für die von Peter angegebenen Operationen gibt's auch spezielle
Befehle. Schau dir dazu mal ADDC, SUBC, ADDIW und SUBIW an. Die ersten
beiden beachten das Carryflag.

Dabei natürlich immer das Alignment der Resultate des ADC beachten :-)

von ...HanneS... (Gast)


Lesenswert?

Wenn Y (yh:yl) von X (xh:xl) subtrahiert werden soll:

sub xl,yl    ;subtrahiert L-Teil Y von X
sbc xh,yh    ;subtrahiert H-Teil Y von X incl. Übertrag (Carry)

...

von Peter (Gast)


Lesenswert?

Super! Vielen Dank!! Es funktioniert!

Ihr seid spitze!!!


Peter.

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
Noch kein Account? Hier anmelden.