mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rechnen mit ADC-Ergebnis


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

...

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super! Vielen Dank!! Es funktioniert!

Ihr seid spitze!!!


Peter.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.