- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Zählen der ausgekösten Tasterbetätigung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.09.2008
    Beiträge
    12

    Zählen der ausgekösten Tasterbetätigung

    Anzeige

    Praxistest und DIY Projekte
    Nun da ich endlich geschafft habe meine Taster unter kontrolle zu bekommen u8nd sie den Selbstest und alles andere (andere Testprogramme für Taster) ohne murren durchführen, möchte ich nun eien Zähler bauen, der es mir erlaubt das auslösen eines Tasters zu erfassen.

    Im genaueren meine ich "Wird ein Taster gedrückt (im Moment egal welcher) soll der Zähler um eins ansteigen.

    Ich habe auch schon was probiert nur funktioniert das nicht so wie ich es gerne hätte.
    Angehängte Dateien Angehängte Dateien

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Bei Komplieren deines Programms erhalte ich unter anderem folgende Warnung:

    temp.c:13: warning: 'n' might be used uninitialized in this function

    Deshalb würde ich in der Funktion zaehler() als Ersatz für int n; folgende Zeile empfehlen:

    static int n=0;

    Das bewirkt, dass die Funktion die Variable nie mehr vergißt (static) und beim ersten Mal mit 0 vorbelegt wird (=0).

    Einfacher geht es z.B. so:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
       unsigned char i=0;
    
       Init();
       StatusLED(RED);               // Meldung Ende Init() erreicht
    
       while(1)
       {
    		while(PINC & (1<<PC4)); 	// Wird ausgeführt solange keine Taste gedrückt wird
    
    		i++;                       // Zähler erhöhen
    		if(i==5) StatusLED(GREEN); // Zählerstand anzeigen
    		if(i==10) StatusLED(YELLOW);
    		if(i==15) { StatusLED(RED); i=0; } // und rücksetzen
    
    		while(!(PINC & (1<<PC4))); // Wird ausgeführt solange eine Taste gedrückt wird
       }
       return(0);
    }
    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    33
    Beiträge
    239
    hallo

    könnte es sein, dass es bei diesem programm zu falschen werten kommen könnte, da die taster womöglich nicht entprellt sind?

    in der schule habe ich gelernt, dass beim drücken eines tasters und auch beim loslassen kurzzeitig der wert am pin zwischen 1 und 0 wechselt (es ist kurz ein kontakt, dann wieder nicht. und das etliche male)
    das würde dann in diesem programm dazu führen, dass ein zu hoher wert heraus kommt.
    man könnte dies umgehen, in dem man einfach beim erkennen eines gedrückten tasters einige ms wartet, und dann erst schaut, wann er wieder losgelassen wird. ebenso müsste man es beim loslassen machen.

    wie gesagt bin ich mir aber nicht sicher, ob sie wirklich nicht entprellt sind
    mfg hai1991

    P.S.: wer großbuchstaben oder rechtschreibfehler findet darf sie behalten

Berechtigungen

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

12V Akku bauen