Hallo, Ich arbeite gerade an einem kleinen Programm, das ein PWM-Signal ausgibt (gesteuert über zwei Taster) und zwei analoge Spannungen überwacht und je nach dem eine von zwei Leds ansteuert. Die Leds blinken aber, auch klar weil ich bei der Tasterabfrage für die PWM eine Warteschleife eingebaut habe. Da ich mich gerade erst in die Welt der MC eingearbeitet habe, hoffe ich jemand kann mir einen guten Tipp geben, wie ich Herr über dieses "Blinken" werde. mfG Christoph
Guck mal in der Codesammlung nach Tastenentprell-Routinen von Peter Dannegger. Da hast du keine Warteschleifen mehr...
Danke für die schnellen Antworten, werde ich mir gleich mal anschauen. Eine Anfängerfrage hätte ich noch, PWM der Hardware überlassen? Wie darf ich dass verstehen?
>PWM der Hardware überlassen? >Wie darf ich dass verstehen? Im Datenblatt (ich gehe mal von AVRs aus) sind die verschiedenen Timer-Modi beschrieben. Darunter sind auch diverse PWM-Modi.
Ich habe eine Warteschleife eingebaut, damit die PWM-Wert langsam bei Tastendrück gesteigert bzw veringert wird, wenn ich keine Schleife habe verändert sich der Wert zu schnell.
Wenn du die Tasten-Abfrage an ein periodisches Ereignis wie einen Timer-Interrupt koppelst, kannst du sie sehr elegant entprellen (sollte man auf jeden Fall!). Diese Funktion kann man dann noch soweit treiben, dass man erkennt, wie lange eine Taste gedrückt wird. Man kann auch erkennen, ob eine Taste wieder losgelassen wurde. Man kann also zwischen einem einzelnen Tippen und einem Dauerdrücken unterscheiden. Die Artikel dürften dich interessieren: http://www.mikrocontroller.net/articles/Entprellung http://www.mikrocontroller.net/articles/Pulsbreitenmodulation
Danke für die links! Ich glaube, dass ist genau das, was ich gesucht habe! Werd den Code einmal studieren und mal sehen, ob ich daraus etwas für meine Bedürfnisse basteln kann. mfG Christoph!
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.