Analogwertverarbeitung mit 517A

Gast #315687
Hallo Ich möchte mit einem 83c517a Analogwerte einlesen und beliebig
verarbeiten. Wie muss ich das Hardwaretechnisch realisieren.
Die Spannung bekomme ich z.B mit einen Spannungsteiler auf 0V bis 5V.
Wird jetzt einfach GND mit dem analogen GND des µC verbunden und die
zu messende Spannung mit einem der Analogeingänge(z.B. A0). Wie ist das
mit dem Eingang der Referenzspannung, was muss da dran?
Ich habe folgende Funktion zum testen, aber so richtig haut das noch
nicht hin.(siehe unten)
Ich bekomme nach jeden Aufruf verschiedene Werte zurück, obwohl ich am
Analogeingang ca. 2V anliegen habe(Die Werte schwanken zwischen 3 und
1000).
Vielen Dank schonmal

int aduwert(char kanal)
{
ADCON1=kanal;
ADDATL = 0; /* ADU starten */
while(BSY);
return((ADDATL>>6)+ADDATH*4);
} void main(void)
{
int x; x=(int)aduwert(0);
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.