Hallo In dem Link https://www.mikrocontroller.net/attachment/100189/Drehgeber.c welche ich benutze , danke für die Funktionen steht am ende DDRD &= ~(1<<PD6); //als Eingang setzen PORTD |= 1<<PD6; //Eingang Abfragen DDRC |= 1<<PC5; //Als Ausgang setzen for(i = 0; i < 2; i++){ if( debounce( PIND, PD6 ) ) PORTC ^= 1<<PC5; //toggle/schreibe PC5 in PORTC was verbirgt sich hinter der debounce( PIND, PD6 ) function? und weiter sollte es nicht DDRD |= 1<<PD6 heißen ?
Martin M. schrieb: > was verbirgt sich hinter der debounce( PIND, PD6 ) function? Es geht um den Taster auf einem Drehgeber, also neben der Möglichkeit ihn zu drehen noch um die Möglichkeit auf ihn draufzudrücken. Das ist ein normaler Taster der hier mit entprellt wird wie hier: https://www.mikrocontroller.net/articles/Entprellung So richtig schlau ist das nicht, für den Drehgeber einerseits die intelligente zeitgebergesteuerte polling-Abfarge zu verwenden um prellen und Flattereffekte gar nicht erst auftreten zu lassen, andererseits nicht auch genau dieselbe Interrupt-Routine einzusetzen um gleich den Knopf Taster selbst mit zu entprellen.
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.