Oli Krause
12.11.2008, 19:56
Hai zusammen,
ich habe gerade ein folgendes Projekt am laufen: Mit dem ADC des ATMega 64 soll die Stellung eines Potis erfasst werden und dann abhängig davon alle zwei Stunden ein Ausgang eine gewisse Dauer geschaltet werden.
Zur Erfassung Verwende ich die interne Ref mit einem C nach GND. Mit dem Poti ist ein Spanungsteiler gegen den ADC-Eingang aufgebaut.
Um nun alle zwei Stunden das Event auszulösen verwende ich ein Uhrequarz an den dafür vorgesehenen Eingängen ( sorry mir fällt der Name gerade nicht ein ...). Außerdem läuft der TimerInterrupt viertelsekündlich.
Jetzt zu meinem Problem. An sich misste der ADC recht sauber....nur eben nicht immer.
Wenn ich im AVR-Studio einen Breakpoint auf die eigentliche Messroutine setze ( nach der Messung ) dann erfasst der Controller jede Veränderung. Setze ich aber den Breakpoint in den Timerinterrupt, passiert es hin und wieder, daß der Wert hängen bleibt.
Gehe ich noch einen Schritt weiter und lasse den Controller frei laufen, dann ist es eher selten, daß eine Wertveränderung sauber erfasst wird.
Ach so....wahrscheinlich nicht unwichtig: ich betreibe den Controller mit dem internen Oszillator.....laut Fuses auf 8Mhz gesetzt.
Auch mit dem Prescaler habe ich schon einiges ausprobiert....immer wenn ich dachte, daß es jetzt funktioniert, hats im Freerun wieder nicht geklappt.
Schonmal vielen Dank für Eure Ideen !!
Viele Grüße
Oli
ich habe gerade ein folgendes Projekt am laufen: Mit dem ADC des ATMega 64 soll die Stellung eines Potis erfasst werden und dann abhängig davon alle zwei Stunden ein Ausgang eine gewisse Dauer geschaltet werden.
Zur Erfassung Verwende ich die interne Ref mit einem C nach GND. Mit dem Poti ist ein Spanungsteiler gegen den ADC-Eingang aufgebaut.
Um nun alle zwei Stunden das Event auszulösen verwende ich ein Uhrequarz an den dafür vorgesehenen Eingängen ( sorry mir fällt der Name gerade nicht ein ...). Außerdem läuft der TimerInterrupt viertelsekündlich.
Jetzt zu meinem Problem. An sich misste der ADC recht sauber....nur eben nicht immer.
Wenn ich im AVR-Studio einen Breakpoint auf die eigentliche Messroutine setze ( nach der Messung ) dann erfasst der Controller jede Veränderung. Setze ich aber den Breakpoint in den Timerinterrupt, passiert es hin und wieder, daß der Wert hängen bleibt.
Gehe ich noch einen Schritt weiter und lasse den Controller frei laufen, dann ist es eher selten, daß eine Wertveränderung sauber erfasst wird.
Ach so....wahrscheinlich nicht unwichtig: ich betreibe den Controller mit dem internen Oszillator.....laut Fuses auf 8Mhz gesetzt.
Auch mit dem Prescaler habe ich schon einiges ausprobiert....immer wenn ich dachte, daß es jetzt funktioniert, hats im Freerun wieder nicht geklappt.
Schonmal vielen Dank für Eure Ideen !!
Viele Grüße
Oli