Forum: Mikrocontroller und Digitale Elektronik PinAbfrage während der Timer läuft!


von Bernd (Gast)


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

von Karl H. (kbuchegg)


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

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.