mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Erfassen ohne Uref


Autor: DerAlex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Habe Folgendes Problem:
Ich benutze einen Atmega 32 mit dem ich einen Analogwert einlesen 
möchte.  Dieser soll in der Variablen  „temp1“ abgelegt werden. Später 
will ich diesen auf einem LC-Display auslesen können.  Im Anhang findet 
ihr ein Schaltbild wie ich zum Testen ein Poti am Analogeingang habe. 
Kann es sein das ich es Falsch angeschossen habe? Ich Wollte ohne 
interne Referenzspannung Messen können. Später will ich mit einem LM35CZ 
eine Temperatur erfassen. Um nun den Analogeingang zu testen habe ich 
vorerst dieses Programm geschrieben. Leider Kriege ich keine Ausgabe, 
bzw. die Variable wird nicht beschrieben. Kann mir einer sagen was ich 
Falsch gemacht habe?


uint16_t ReadChannel(uint8_t mux)
char  temp1;
{

  uint16_t Temperatur;

 ADMUX = (1<<REFS0) | (1<<MUX0); //  Referenzspannung von AVCC 
nutzen//PortA0

ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS2); //Analogwandlung 
ein//Teilungsfaktor 32


  /* "Dummy-Readout" */
  ADCSRA |= (1<<ADSC);              // eine ADC-Wandlung
  while ( ADCSRA & (1<<ADSC) ) {
     ;     // auf Abschluss der Konvertierung warten
  }
  Temperatur = ADCW;  // ADCW muss einmal gelesen werden,
                  // sonst wird Ergebnis der nächsten Wandlung
                  // nicht übernommen.

  / *Messung */
  Temperatur = 0;

    ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
    while ( ADCSRA & (1<<ADSC) ) {
      ;   // auf Abschluss der Konvertierung warten
    }
  ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren

Temperatur=ADCW;
temp1=Temperatur;
}


Danke für eure Bemühungen

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GND/AGND/VCC Angeschlossen? (Im Schaltplan nicht Sichtbar)

Diese drei vorhanden?
100nF von AREF->AGND.
100nF von VCC->GND
100nF von AVCC->AGND

Und kopier den Programabschnitt hier rein (am besten in [c]..[ /c])
Bei Abtippen ist da wohl was schiefgelaufen.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ DerAlex (Gast)

>Dateianhang: ADC_Schaltung.JPG (98,5 KB, 3 Downloads)

1.Tip Bildformate
2. Tip   AVR-Tutorial: ADC
3. Tip 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...


>Kann es sein das ich es Falsch angeschossen habe?

Da fehlt einiges.

> Ich Wollte ohne interne Referenzspannung Messen können.

Warum?

MFG
Falk

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir kommt der Code allgemein sehr komisch vor ;)
uint16_t ReadChannel(uint8_t mux)
char  temp1;
{

  uint16_t Temperatur;

 ADMUX = (1<<REFS0) | (1<<MUX0); //  Referenzspannung von AVCC nutzen
 //PortA0

was soll das "char temp1;" zwischen Funktionsname und Funktionscode?

Gruß, CowZ

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.