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 ?
Gast
#4666058
Gast
#4666059
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.
Danke für die INfos
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.