PinAbfrage während der Timer läuft!

Gast #275736
Lesenswert?
• ▲
▼
wie kann ich folgendes realisieren.

starteTimer
--->
Wenn der Timer nocht nicht beendet und währenddessen eine Lichschranke
ausgelöst wird ,ist die Zeit des Timers egal und das programm läuft
weiter.
Wenn Timer abgelaufen ist dann soll eine Fehlermeldung ausgegeben
werden.

Also nochmal in Worten. Wenn wären der Timer läuft und eine
Lichtschranke aktiv wird soll das Prgramm weiterlaufen. Wenn die Zeit
abgelaufen ist dann soll neh Fehelermeldung ausgegeben werden....Wie
zum Beispiel....warten auf LS hat zu lange gedauert!


Wie geht das...habe schon mit mehren schleifen probiert mir ist aber
keine Lösung eingefallen!
Wollte die zeitbasis vom Overflow Interrupt nehemen
#275737
Lesenswert?
• ▲
▼
Das Program besteht aus 2 Teilen:
Eine Timeroverflow Routine, die Dir einen Zeittakt
zur Verfuegung stellt: Sagen wir mal, Der Overflow
wird alle 1 ms aufgerufen.
Innerhalb der Overflow Funktion zaehlts Du eine (oder
mehrere) Variable(n) hoch, die sowas wie eine Stoppuhr
realisieren. Soweit so gut.

Im Hauptprogram initialisierst Du die Stoppuhr auf 0
und startest eine Warteschleife. Die Schleife
kann auf 2 Arten verlassen werden:
  * entweder ist die Lichtschranke aktiviert worden
  * oder die Zeit ist abgelaufen

in PseudeCode:

   StopCounter = 0;
   Starte den TimerOverflowInterrupt

   while( StopCounter < WaitingTime &&
          Lichtschranke_hat_nicht_ausgeloest ) {
     ; /* Warte */
   }

   if( Lichtschranke_hat_nicht_ausgeloest )
     Gib ne Fehlermeldung aus
   else
     mach weiter mit was anderem

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