www.mikrocontroller.net

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


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mario (Gast)
Datum:

Diesen Beitrag bewerten:
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:

Diesen Beitrag bewerten:
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 (Firma: Schwabenplan) (schicki)
Datum:

Diesen Beitrag bewerten:
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:

Diesen Beitrag bewerten:
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:

Diesen Beitrag bewerten:
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:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Seid ihr sicher, daß der TE überhaupt noch lebt?

Autor: Sunny (Gast)
Datum:

Diesen Beitrag bewerten:
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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net