Infrarot Distanzsensor AD-Wandler, Bitte Source Code Prüfen

Gast #322754
hallo, versuche gerade mit dem ad-wandler ein analoges signal von einem
infrarot distanz sensor einzulesen und per uart an die serielle
schnittstelle zu senden, funktioniert jedoch nicht! weis nicht mehr was
ich noch tun kann, quelltext ist im anhang, habe einen atmega8 mit
integriertem ad wandler und programmiere ihn in c, bitteee sourcecode
prüfen! thx schonmal
Angehängte Dateien:
Gast
also das programm soll den analogen eingangswert in einen digitalen
umwandeln und per uart senden, jedoch sendet er mir den wert des sensor
nicht ans terminal
Gast
Hi,

ohne direkte Fehlerangabe sind meine Vermutungen nur aus der Glaskugel
geholt.

Deine globalen Variablen werden vom Compiler weg optimiert. Setze mal
diese auf volatile.

Globaler Interrupt enable fehlt? sei();
Gast
Sehr viel besser ist die Beschreibung auch nicht.

Kommen überhaupt keine Ausgaben?
Kommen falsche Ausgaben?

Eine Vermutung ist, daß Du eine Endlosschleife in read_adc hast.
Gast
hm ich habe nun den watchdog aktiviert und das timeout auf 1 sekunde
eingestellt, und nun resettet er mir den atmega ständig also muss etwas
mit der funktion readadc() nicht stimmen, denn wenn ich die funktion
auskommentiere resettet der wd nicht!
Gast
Hallo Christian

#define ADC_VREF_TYPE 0x00  //External VREF
 //#define ADC_VREF_TYPE 0x40  //AVCC
 //#define ADC_VREF_TYPE 0xc0  //Interne 2,56V Spannung

unsigned int read_adc(unsigned char adcinput)
{
ADMUX=adcinput|ADC_VREF_TYPE;

// Starte AD Konversion
ADCSRA|=1<<ADSC;

// Warte  bis AD Konversion fertig ist
while ((ADCSRA & (1<<ADIF))==0);

ADCSRA|=(1<<ADIF);  // Lösche ADC Interrupt Flag

return ADCW;
}

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.