mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC-Wandlung mit ATMEGA16. Weiterarbeiten mit 10Bit und ASM


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich betreibe zwei Analogports am ATMEGA16, und kann diese erfolgreich
einlesen. Nun hab ich einen 10-Bit großen Wert, den ich ja in zwei
Register, oder in den SRAM oder sonst wo einlesen kann. Wie kann ich
mit diesem Wert nun weiterarbeiten?
In C gibts dafür ja Variablen, und einfache Rechnungen, aber in
Assembler hänge ich gerade total fest. Ziel ist es einen Ausgang so
lange auf "1" zu lassen bis der Wert z.B. 500 erreicht hat.

Danke im voraus für eure Antworten

Autor: C++ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
dann nimm doch einfach "C". Geht viel besser....

C

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwo gab es hier einen Thread "rechnen in Assembler" oder so
ähnlich. Suchen hilft.
Von ASM habe ich fast keine Ahnung (mir fehlen da ein paar Vokabeln...)

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast den 10-Bit Wert in zwei Registern stehen. Sagen wir, deine 500
steht in den Registern R10 und R11, wobei R10 das lowbyte enthält, und
R11 das highbyte. Außerdem entspricht (dezimal)500 (hexadezimal)0x1F4.
Du brauchst nun das lowbyte (also R10) nur mit 0xF4 zu vergleichen,
sowie das highbyte mit 0x01. Wenn beide kleiner sind, lässt du den
Ausgang auf 1, sonst setzt du ihn auf 0.

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Tutorial gibt es dort:

http://www.avr-asm-tutorial.net/

ab Seite 43 steht viel über Zahlenumwandlung mit Beispielen,
der Quellcode steht ab Seite 45.

Mir hat das sehr geholfen, meinen Dank an Gerhard Schmidt.

Es grüsst,
Arno

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In den ATMEL-Appnotes findet man auch allerhand Hinweise zur
16-Bit-Arithmetik.

...

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ C++
Ein Problem gegen ein anderes eintauschen, ist das der Vorschlag?

@ Arno
Dank angekommen und freundlich begrüsst ...

mfg
gerd

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.