www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega644 und ADC


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

Bewertung
0 lesenswert
nicht lesenswert
Moin, ich versuch gerade, mit meinem neuen Photowiderstand das Licht zu 
messen und erst mal die Staerke auszugeben... dazu moechte ich den 
internen ADC des atmega644 verwenden.

Habe also an PA0 VCC ueber den Widerstand angeschlossen und noch ein LCD 
an Port D gehaengt, um die Daten anzuzeigen. Im Anhang ist mein Code, 
der ADC Teil wurde groesstenteils aus dem AVR-GCC Tutorial geklaut.
Funktioniert aber leider nicht, der ausgelesene Wert ist immer 0.
Weiss einer, wo mein Fehler liegt?

Gruss, Apo

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apo wrote:
> Weiss einer, wo mein Fehler liegt?
Wenn an dem Analog-Eingang nur der Fotowiderstand hängt, dann weiß 
ich, wo der Fehler liegt. Du musst einen Spannungsteiler mit dem 
Fotowiderstand bauen oder den Fotowiderstand mit einem konstanten Strom 
versorgen und die Spannung über dem Fotowiderstand messen...

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BTW: Ich glaube, Du hast auch falsche Vorstellungen davon, wie lange der 
ADC für eine Wandlung (bzw. in Deinem Fall für 4 Wandlungen) braucht... 
Bei den Einstellungen dauert eine Wandlung schon gut 100µs, der 
Timer-Interrupt kommt bei der Konfiguration aber alle 160µs...

Autor: Apo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, wie bau ich so 'nen Spannungsteiler?
http://de.wikipedia.org/wiki/Bild:Spannungsteiler.svg
Muss ich da PA0 zwischen R1 und R2 haengen?

Autor: Apo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Interrupt sollte alle 0.2s kommen...

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apo wrote:
> Muss ich da PA0 zwischen R1 und R2 haengen?
Zum Beispiel. Und dran denken, dass bei der Methode die Ausnutzung des 
Referenzspannungsbereiches bei Verwendung von VCC ziemlich suboptimal 
ist.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apo wrote:
> Der Interrupt sollte alle 0.2s kommen...
OK, mit der Einstellung wie im Programm
#define HZ 5
#define COMP 8000000/256/HZ
und nem Prescaler von 256 (den ich vorher übersehen hatte) kommt ca. 
alle 40 ms ein Interrupt
Das macht eben 41,12ms zwischen zwei Interrupts...

Allerdings könnte es Probleme geben mit der "8000000". Schreib lieber 
"8000000UL", dann merkt der Compiler auch definitiv, dass er das nicht 
in 16-Bit-int rechnen darf...

Autor: Apo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8000000/256/5 = 6250

Timer1 hat also bei 6250 sein Compare Match. 6250*256 (Prescaler) = 1,6M
8MHz/1.6MHz = 5Hz
Zufrieden?

PA0 haengt jetzt zwischen dem Photoresi und 30kOhm. Mit dem Multimeter 
laesst sich der Spannungsunterschied locker messen, der MC laesst sich 
aber immer noch nicht beeindrucken...

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apo wrote:
> 8000000/256/5 = 6250
>
> Timer1 hat also bei 6250 sein Compare Match. 6250*256 (Prescaler) = 1,6M
> 8MHz/1.6MHz = 5Hz
> Zufrieden?
Hast zwar recht, ich hab da nicht richtig hingeschaut, aber den Ton 
kannste Dir sparen! Viel Spaß noch!

Autor: Apo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauchst nicht gleich eingeschnappt zu sein, das war kein Stueck boese 
gemeint... aber von mir aus, irgendwie werd ich's schon schaffen. Danke 
fuer den Tipp mit dem Spannungsteiler.

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.