www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Keine Erkennung des Tastendrucks


Autor: Hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin zusammen,

ich habe einen Taster der mit 100R in Reihe und mit 100nF und 100kR 
gegen GND angeschlossen ist. Es kommt laut Oszi beim Tastendruck ein 
schönes Bild raus. Sollte also soweit passen.


Jetzt will ich solange warten bis die Taste wieder losgelassen wurde:

In einer Endlosschleife:

if (PINC.1>=1)
        {
        Funktionsaufruf(bla);
        while(PINC.1>=1);    <--- Da wartet er nicht
        delay_ms(2);
        PORTB.3=1;
        delay_ms(20);
        PORTB.3=0;
        }

Zuerst gehe ich einen haufen If Abfragen durch um zu sehen ob eine Taste 
gedrückt worden ist. Anschließend wird eine Funktion aufgerufen, die 
eben bestimmte Dinge der Taste entsprechend realisiert. Ich muss aber 
wissen wann die Taste wieder losgelassen wird um entsprechend handeln zu 
können. Also hab ich mir gedacht, einfach eine while schleife rein die 
solange nichts macht bis die Taste losgelassen wird und dann gehts im 
Programmcode einfach weiter.

Wenn ich jetzt diese Taste drücke kommt an PORTB.3 ein Clocksignal raus, 
also bleibt er wohl nicht in der while schleife stehen.

What to do now?

Danke

Autor: Steven () (ovular) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich bin ja nicht so der C-Kenner, aber bringt da {} was?

Autor: Peter P. (bonsaibaum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnte es ev. sein, dass dein taster prellt ?

Autor: Hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne, das ist egal.

Autor: Hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, aut Oszi schaut es ok aus. Ich hab auch schonmal Testweise 
ein größeres Delay für die while eingebaut damit der Pegel wirklich 
sauber anliegt. Hat aber auch nichts gebracht.

Autor: Hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vor die while...nicht für die while

Autor: Hansi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt, der Watchdog war schuld (die blöde Sau) ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.