Mplab, bitte Hilfe

OP #1635455
Lesenswert?
• ▲
▼
Ich habe einen taster am 18f4550 angeschlossen (PortB). Wenn der taster 
3 sekunden gedrückt wird soll ein printf Befehl ausgegeben werden.

Wie mache ich am besten die Abfrage dass nach 3 Sekunden drücken der 
Befehl gesendet wird?

Ich dachte an einen Timer der immer den zustand des Tasters abfragt und 
bei anhaltender positiver rückmeldung dann das senden veranlasst.

Könnte mir vllt jemnd ein codebeispiel geben bitte?

danke im voraus
#1636608
Lesenswert?
• ▲
▼
ich täte das so machen:

-> Timer im uC so einstellen, dass alle 0.1 sec ein interrupt losgeht

ISR() <- state machine im interrupt
switch(state) {
 counting:
  count++;
  if(taste_open)
   state=not_couning;
  break;
 not_couning:
  count=0;
  if(taste_closed)
   state=counting;
}

und woanders einfach

if(state==counting && count>=30)
 => mindestens 3 sekunden wird Taste gehalten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren