Hallo,
ich mache mich gerade daran, wie viele hier einen Looping Louie zu
tunen; ich habe vor mir einen ATTiny2313 liegen, den ich zur Steuerung
der Motorgeschwindigkeit benutzen möchte, dabei hat sich folgendes
Problem ergeben:
Ich steuere den Motor über Ping 9 (PD5/OV0B) des Controllers an, was an
sich auch funktioniert: Über einen Transistor schalte ich den Motor ein
und aus, Freilaufdiode und Elko halten lästige Nebeneffekte im Zaun.
Zum Test habe ich jedoch auch eine LED an den Pin angeschlossen, die
meinem Verständnis ja eigentlich gedimmt werden müsste, wenn ich die
PWM-Frequenz variiere; im großen und ganzen stimmt das auch, allerdings
flackert sie zudem unregelmäßig, ohne dass ich da ein System hinter
erkennen kann. Der betroffene Code ist recht übersichtlich:
1 | DDRD |= 1<<PD5;
|
2 | TCCR0A = _BV(COM0B1) | _BV(WGM00);
|
3 | TCCR0B = _BV(CS01) | _BV(CS00);
|
4 | OCR0B = speed[current_speed];
|
Das Array speed enthält dann verschiedene Werte (0, 64, 128, 192, 255),
die über Taster durchgeschaltet werden. Das unregelmäßige Flackern tritt
unabhängig von der Speisung auf, ich habe auch schon großzügig
Kondensatoren an ICs und Regler verteilt, dennoch bekomme ich es nicht
abgestellt (oder mir zumindest erklärt).
Hat jemand eine Idee, woran das liegen kann?