Hi Leute, ich weiss, vieles wurde schon erklaert und gefragt, aber ich braeuchte eure Hilfe. Und zwar habe ich ein kleines LCD Display mit 4 Tasten und einem 4Mhz getakteten Mega32. Bei jedem Overflowinterrupt mache ich eine Tastenabfrage. Ich verwende diese Delayroutine: inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) ) { /* Pin wurde auf Masse gezogen, 100ms warten */ _delay_ms(30); // max. 262.1 ms / F_CPU in MHz _delay_ms(30); if ( *port & (1 << pin) ) { /* Anwender Zeit zum Loslassen des Tasters geben */ _delay_ms(60); _delay_ms(60); return 1; } } return 0; } Leider muss ich ziemlich lange auf meine Tasten druecken um eine Reaktion zu sehen. Ich habe auch die Zeiten schon verkuerzt nur wird es damit irgendwie auch nicht besser. Koennte jemand mir vielleicht sagen, ob ich die Zeiten noch laenger machen soll, oder eher viel kuerzer. Denn ich habe keine Ahnung wie lange ein Schalter ungefaer braucht, oder was denn so ueblich ist. Oder sind die Zeiten ok und das Problem liegt wo anders. Danke schon mal!!!
Daniel wrote: > damit irgendwie auch nicht besser. Koennte jemand mir vielleicht sagen, > ob ich die Zeiten noch laenger machen soll, oder eher viel kuerzer. Was du machen sollst. Nimm diese Tasten-Abfrage-und-Entprellroutine http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29 und erfreue dich wunderbar entprellter Tasten ohne dass der Prozessor da irgendwo auf irgendwas gross warten muss.
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.