Hi an alle! Ich verwende bei meinem ATMega8 den ADC0 und ADC1. Mit beiden Convertern frage ich jeweils ein Poti ab, dass die Pulsweite für eine PWM-Signal (Helligkeitssteuereung einer LED) festlegt (wird mit Timer0 und Timer2 erzeugt - kein HardwarePWM). Die Abfragen der ADC-Kanäle erfolgt im Hauptprogramm. Es funktioniert prinzipiell einwandfrei, nur habe ich das Problem, dass die LEDs flackern. Warum könnte das sein? Hier mein Hauptprogramm (BASCOM): Do Admux.0 = 0 Adcsra.6 = 1 While Adcsra.6 = 1 Wend Adc_val1 = Adch Intens1 = Adc_val1 Intens2 = 255 - Intens1 Admux.0 = 1 Adcsra.6 = 1 While Adcsra.6 = 1 Wend Adc_val2 = Adch Zwsp2 = Adc_val2 / 255 Intens1 = Intens1 * Zwsp2 Intens2 = Intens2 * Zwsp2 Loop Mein Programm läuft mit 10MHz, Prescaler bei beiden Timern ist 64 und beim ADC 128. Ich wüßte nicht, woher das Flackern kommen könnte! Hoffe ihr könnt mir weiterhelfen!! Danke, Andy
Andy wrote: > (Helligkeitssteuereung einer LED) festlegt (wird mit Timer0 und Timer2 > erzeugt - kein HardwarePWM). Wie machst du die PWM dann? > Es funktioniert prinzipiell einwandfrei, nur habe ich das Problem, dass > die LEDs flackern. Warum könnte das sein? Weil die PWM Frequenz nicht hoch genug ist.
Kann es sein, dass Du Deine PWM-Eigenschaften veränderst, wenn ein entsprechender Zyklus noch aktiv ist?
Naja, die Timer-Routinen sehen so aus: On_timer0: Toggle Channel1 If Channel1 = 1 Then Timer0 = Intens1 Else Timer0 = 255-Intens1 End If Return Damit wird ein PWM-Signal erzeugt. Und die PWM-Frequenz beträgt über 600Hz. Also dürfte man da nichts sehen. Außerdem: Ich verwende einen ATMega48 anstatt eines ATMega8. THX... Andy
@aaa: Sagst du mir das, weil die while-Schleife dieses Flackern verursachen könnte, oder ist das nur so nebenbei bemerkt? :) lg Andy
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.