Hi, wie schon im Titel beschrieben will ich eine LED an PB1 meines Atmega 328p mit einem Taster (an PD6) und PWM dimmen. Das soll wie folgt ablaufen: Wenn der Taster nur einmal gedrückt wird geht die LED an und bleibt auch an. Wenn ich den Taster dann wieder drücke geht sie wieder aus. Wenn die LED an ist und ich den Taster gedrückt halte soll die LED runter Dimmen bis die LED nur noch sehr Dunkel ist. Wenn ich dann wieder gedrück halte dimmt sie wieder hoch auf den höchsten Wert. (Nach einfachem drücken soll die LED natürlich immer aus gehen). Nur habe ich leider keine Ahnung wie das funktionieren soll. Natürlich habe ich mich schon ein bisschen in die ganze Thematik mit PWM eingelesen aber ich verstehs einfach nicht wie das gehen soll. Als Programmiersprache verwende ich "C". Wäre echt super wenn mir einer von euch da mal etwas zusammenschreiben könnte oder mir wenigstens (leicht verständlich) etwas dazu erklären könnte. Bitte kein Fachchinesich da ich auf diesem gebiet nicht sonderlich bewandert bin. MfG Peter
Peter schrieb: > Was genau soll das den bringen ? Dann funktioniert: -deine Entwicklungsumgebung, -deine Programmierhardware, -die Hardware zum Ansteuern der LED, -deine Takterzeugung. Nächster Schritt: LED mit Taster Ein- und Ausschalten.
Soweit sollte alles funktionieren. Mit "Takterzeugung" meinst du den Takt, der vom Quarz erzeugt wird ?
Du brauchst eigentlich nur https://www.mikrocontroller.net/articles/Entprellung#Timer-Verfahren_.28nach_Peter_Dannegger.29 und ein klein wenig Gehirnschmalz. Die o.a. Routine liefert dir auch kurze und lange Tastendrücke extra. Dabei gehe ich davon aus, das deine PWM (Timer 1, OC1A) schon funktioniert.
:
Bearbeitet durch User
Matthias S. schrieb: > Du brauchst eigentlich nur > https://www.mikrocontroller.net/articles/Entprellung#Timer-Verfahren_.28nach_Peter_Dannegger.29 Aber das ist doch in Assembler geschrieben. Oder meinst du den Code darunter ?
Ein Stück drunter ist der C Code. Mit dem kannst du das alles machen was deine Tasten machen sollen. Du brauchst dann nur noch die PWM einbauen. Gruß JackFrost
:
Bearbeitet durch User
Und guck dir an was ne Statemachine ist. Sonst entsteht für die "Wenn Taster, dann..." Regeln sehr schnell unübersichtlicher Spaghetticode.
Ok danke erstmal ich werd das wenn ich zeit habe mal alles durchgehen. Melde mich dann wieder :)
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.