Forum: Mikrocontroller und Digitale Elektronik Keine Erkennung des Tastendrucks


von Hansi (Gast)


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

von Steven (. (ovular) Benutzerseite


Lesenswert?

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

von Peter P. (bonsaibaum)


Lesenswert?

könnte es ev. sein, dass dein taster prellt ?

von Hansi (Gast)


Lesenswert?

Ne, das ist egal.

von Hansi (Gast)


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.

von Hansi (Gast)


Lesenswert?

vor die while...nicht für die while

von Hansi (Gast)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.