Atmega644 und ADC

Gast #843377
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
Angehängte Dateien:
#843383
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...
#843402
Lesenswert?
• ▲
▼
Apo wrote:
> Der Interrupt sollte alle 0.2s kommen...
OK, mit der Einstellung wie im Programm
1
#define HZ 5
2
#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...
Gast #843409
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren