Hi Leute, hab da mal ne Frage. Und zwar habe ich mir den Entpreller von P. Dannegger genommen und wollte damit nun nen Menü für ne LED Steuerung erstellen. Meine LEDs werden mittels PWM angesteuert und laufen auch perfekt (ohne den Entprellcode). Mein Problem ist, dass ich wenn ich die beiden Codes verschmelzen lasse überhaupt keine Funktion dem ganzen entlocken kann. Lediglich die PWM funktioniert wenn auch eeeewig langsam. SOll heissen; man kann zugucken wenn die Lampen je nach RGB Wert an oder aus gehen... In der Simulation habe ich das hochzählen des Timers mit dem Entpreller nicht verstanden. Es wirkt irgendwie zufällig (?) Was mir aufstösst ist, dass die Interrupts immer deaktiviert und wieder aktiviert werden. Das kann doch nicht gut sein?! Wenns was hilft würd ich sonst noch den Code nachliefern. Da der Code aber recht lang ist und ich nicht weiß wie man den anhängt laß ich das erstmal lieber. Es geht mir also erstmal Prinzipiell um die Probleme der Entprellungsmethode in Verbindung mit anderen Timern. Danke und lg Tom
Tom schrieb: > Mein Problem ist, dass ich wenn ich die beiden Codes verschmelzen lasse > überhaupt keine Funktion dem ganzen entlocken kann. Dann hast du beim Zusammenführen irgendeinen Fehler gemacht. > Lediglich die PWM funktioniert wenn auch eeeewig langsam. SOll heissen; > man kann zugucken wenn die Lampen je nach RGB Wert an oder aus gehen... Die Entrprellroutine wird in eine Timer-ISR eingefügt, die man so einstellt dass sie ca. alle 10ms aufgerufen wird. Die exakte Zeitdauer zwischen 2 Aufrufen ist ziemlich unkritisch aber auf jeden Fall so lang, dass sie weniger als 5% an Rechenzeit verbraucht. Ohne jetzt nachgerechnet zu haben: wahrscheinlich sind wir sogar unter 1% > Was mir aufstösst ist, dass die Interrupts immer deaktiviert und wieder > aktiviert werden. Das kann doch nicht gut sein?! Die Operationen an sich, zwischen cli und sei, sind sehr kurz und verzögern die reguläre Programmausführung kaum. Wenns doch zu lang ist, reicht es auch in der Hauptschleife nur bei jedem 10-ten oder 20-ten Durchlauf abzufragen ob eine Taste gedrückt wurde. > Wenns was hilft würd ich sonst noch den Code nachliefern. Da der Code > aber recht lang ist und ich nicht weiß wie man den anhängt laß ich das > erstmal lieber. Was bitte ist an einer Tastenabfrage und einer 3-fach PWM lang? > Es geht mir also erstmal Prinzipiell um die Probleme der > Entprellungsmethode in Verbindung mit anderen Timern. Ist kein allzugroßes Problem. Man nimmt den Timer, der am langsamsten ISR-Aufrufe generiert. Wenn die ISR irgendwo in einem Zeitraum von 5ms bis 20ms kommen, dann passt das schon für die Tastenentprellung.
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.