Powell
18.01.2008, 13:39
Hi,
ich habe ein Programm geschrieben, in dem der Mega 8 einen Lautsprecher ansteuert, der einen Ton ausgibt. Die Frequenz des Tons wird geändert indem man an einem Poti dreht (analogauswertung).
Das Programm ist realisiert mit
TCCR1A=&B01000000 'Pin OC1A/PB1 toggeln, kein PWM
TCCR1B=&B00001010 'Timer Reset bei Compare, Clock/8
Das Register COMPARE1A wird dann im Programm abhängig vom Analogwert auf 0-1024 gesetzt.
Das ganze funktioniert ansatzweise, der Lautsprecher gibt einen Ton aus, der sich auch in der Höhe variieren lässt, allerdigngs gibt es oft aussetzer, sodass der Beeper plötzlich ausgeht und für vielleicht 30 sekunden keinen Mucks mehr macht, dann plötzlich macht er wieder weiter als wäre nichts gewesen.
Insbesondere konnte ich beobachten tritt das auf, wenn man sehr schnell am Poti dreht. Ich habe auch mal ohne Lautsprecher das Oszi an den Port gehängt, genau das gleiche. Der Controller arbeitet aber ansonsten normal, das LCD was nebenbei noch angesteuert wird bekommt alle Informationen unmittelbar und ohne aussetzer.
Woran kann das also liegen? Kennt jemand Rat?
ich habe ein Programm geschrieben, in dem der Mega 8 einen Lautsprecher ansteuert, der einen Ton ausgibt. Die Frequenz des Tons wird geändert indem man an einem Poti dreht (analogauswertung).
Das Programm ist realisiert mit
TCCR1A=&B01000000 'Pin OC1A/PB1 toggeln, kein PWM
TCCR1B=&B00001010 'Timer Reset bei Compare, Clock/8
Das Register COMPARE1A wird dann im Programm abhängig vom Analogwert auf 0-1024 gesetzt.
Das ganze funktioniert ansatzweise, der Lautsprecher gibt einen Ton aus, der sich auch in der Höhe variieren lässt, allerdigngs gibt es oft aussetzer, sodass der Beeper plötzlich ausgeht und für vielleicht 30 sekunden keinen Mucks mehr macht, dann plötzlich macht er wieder weiter als wäre nichts gewesen.
Insbesondere konnte ich beobachten tritt das auf, wenn man sehr schnell am Poti dreht. Ich habe auch mal ohne Lautsprecher das Oszi an den Port gehängt, genau das gleiche. Der Controller arbeitet aber ansonsten normal, das LCD was nebenbei noch angesteuert wird bekommt alle Informationen unmittelbar und ohne aussetzer.
Woran kann das also liegen? Kennt jemand Rat?