- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 20

Thema: ATTiny13A Schalter abfragen/entprellung mit Variablen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.06.2014
    Beiträge
    9

    Frage ATTiny13A Schalter abfragen/entprellung mit Variablen

    Hallo liebe Community!

    Seit einigen Tagen bin ich "stiller" Leser hier und habe mir schon einige Tipps und Anregungen geholt

    Leider sitze ich noch immer an einem kleinen Problem:

    Ich habe einen ATTiyn13A auf einem Versuchsboard aufgebaut. Als Programm nutze ich das AtmelStudio 6.1

    -Die Anschlüsse PB0 und PB1 sind jeweils mit einer LED verbunden.

    -Die Anschlüsse PB3 und PB4 jeweils mit einem Taster der mit der anderen Seite auf GND liegt.

    Das Endergebnis soll einmal so Aussehen das eine gewisse Reihenfolge und Häufigkeit einiger Taster gedrückt werden muss um z.B. eine Segmentanzeige zu Aktivieren. (Klar das der Tiny13 da schnell ausgelastet ist mit Ports aber ich habe auch noch einen 2313A da. Der Tiny13 ist erstmal für den Test gedacht)

    Z.B. wenn Taster 1 5mal betätigt wurde und danach Taster 2 3mal soll auf der Segmentanzeige eine 8 aufleuchten.


    Angefangen habe ich mit einem Taster der wenn er gehalten wurde eine LED leuchten lies. Dies funktionierte auch.

    Wenn ich jedoch statt der LED eine Variable hochzählen will und zb wenn die Variable 5 erreicht die LED anschalten soll geht sie gar nicht an. Egal wie schnell oder häufig man die Taste drückt.

    Dann habe ich versucht mit jedem Tastendruck die LED zu invertieren. dh. 1.Druck an, 2.Druck aus usw... Jetzt geht die LED allerdings mal an und mal wieder aus, mal bleibt sie einfach an... Sehr unkontrolliert...

    Da habe ich an eine Entprellung gedacht die wie unten eingebaut ist. Jedoch flackert die LED jetzt nur währen die Taste gedrückt ist und die Schaltzustände sind weiterhin sehr unkontrolliert....

    Vielleicht kann mir jemand einen Denkanstoß geben?

    Hier das aktuelle Programm:
    Code:
    /*
     * LED_Anzeige.c
     *
     * Created: 18.05.2014 19:27:56
     *  Author: Dennis
     */ 
    #define F_CPU 9000000UL
    #include <util/delay.h>
    #include <avr/io.h>
    
    unsigned char Taster1;
    unsigned char Taster2;
    
    void entprellung( volatile uint8_t *port, uint8_t maske ) {
    	uint8_t   port_puffer;
    	uint8_t   entprellungs_puffer;
    	
    	for( entprellungs_puffer=0 ; entprellungs_puffer!=0xff ; ) {
    		entprellungs_puffer<<=1;
    		port_puffer = *port;
    		_delay_us(150);
    		if( (*port & maske) == (port_puffer & maske) )
    		entprellungs_puffer |= 0x01;
    	}
    }
    
    
    int main (void)
    {
    	DDRB=0x03; //Ein /Ausgänge ;
    	PORTB = 0x18; //Pullup aktivieren (PB3+PB4)
    	Taster1 = 0;
    	Taster2 = 0;
    	while(1)
    	{
    		entprellung( &PINB, (1<<PINB3) ); // ggf. Prellen abwarten 
    		if(!(PINB & (1 << PB3)))
    		{
    			Taster1++;
    			PORTB^=0x02;  //PB1 invertieren
    			
    		}
    		entprellung( &PINB, (1<<PINB4) ); // ggf. Prellen abwarten 
    		if(!(PINB & (1 << PB4)))
    		PORTB^=0x01; //PB0 invertieren
    		//PORTB&=~(1<<PB0);	//PB0 ausschalten
    	}
    }
    Vielen Dank für eure Mühe im Voraus!

    Gruß
    Dennis
    Geändert von Denn Is (11.06.2014 um 00:22 Uhr) Grund: Code überarbeitet

Ähnliche Themen

  1. Attiny13a RS232
    Von flecralf im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 09.10.2013, 19:27
  2. Variablen ändern sich durch Berechnung anderer Variablen
    Von Amri im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 03.05.2013, 18:30
  3. Kann Schalter nicht abfragen
    Von Icon2k im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 30.07.2010, 18:51
  4. Entprellung
    Von wolfshund im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 08.05.2007, 21:21
  5. Entprellung
    Von djdune im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 10.06.2004, 22:49

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen