www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 10bit ADC ADRESH & ADRESL 'zusammenführen'


Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich hätt mal eine Frage zur ADC beim PIC16F88:
Wie kann ich in Assembler die Werte von ADRESH und ADRESL zusammenführen 
(zB. bei left justified)? Steh grerade auf der Leitung!

MfG Mario

Autor: Torsten B. (torty)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin zwar aus dem AVR Lager, aber ich bezweifel, dass ein PIC den Inhalt 
von zwei 8Bit registern in eines zusammenpacken kann.
Du muss Dir eine 16Bit Arithmetik besorgen oder ausdenken. Dann kannst 
Du mit dem ganzen Messwert rechnen.

Autor: Ingo Schick (schicki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der C18 Compiler von Microchip kann das in einem Befehl machen.

ReadADC();

Beispiele:
      Wert_Anzeigen(ReadADC());
      Balkenanzeige(ReadADC());

Wenn Du noch ein Bespiel benötigst kannst du Dich gerne per Mail an 
info@schwabenplan.com melden.

VG
Ingo

Autor: Facebook (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der C18 bringt ihm doch garnichts

Vor dem Problem stand ich auch schon. Hab dann aber letztendlich nur 8 
bit verwendet..

Autor: W.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario schrieb:
> Wie kann ich in Assembler die Werte von ADRESH und ADRESL zusammenführen

Was verstehst du eigentlich unter "zusammenführen"?

Ich nehme mal an, daß du alle 10 Bit verwenden willst und daß du sie 
also in einer 16 Bit-Variablen speichern willst, die logischerweise 2 
Bytes Speicherplatz belegt. Also speicherst du ADRESH im höherwertigen 
Byte und ADRESL im niederwertigen Byte. Ist doch absolut easy.

Wie du mit 16 Bit Integer in Assembler rechnest, ist eine andere 
Angelegenheit. Da mußt du dir erstmal überlegen, was du mit dem 
ADC-Ergebnis überhaupt anfangen willst. Aber das mußt du mit jedem uC 
und in jeder Programmiersprache tun.

W.S.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seid ihr sicher, daß der TE überhaupt noch lebt?

Autor: Sunny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe daze auch eine Frage.

Wie rechnet man denn 16 Bit in Assembler.Der hat nur 8 bit register, 
also muss man zwei register verwenden.Und was dann?
Wenn ich zum Beispiel ADRESH in eine variable speichere und ADRESL in 
andere. Wie kann ich das Ergebnis dann als eine Balke auf dem LCD 
anzeigen? Ich habe schon eine Lib, die eine Balke anzeigen kann, aber 
die kann nur einen 8 bit Wert anzeigen.Wie kann man also einen 16 bit 
Wert damit anzeigen?

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.