Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Demoprogramm: Timeout für GET an der Seriellen Schnittstelle Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 18.09.2023 3:10)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
' ===========================================================================
' Demoprogramm: Timeout für GET an der Seriellen Schnittstelle
' In OCBASIC 1.12a_e1 für Open-Maxi von Dietmar Harlos am 18. September 2023
' ===========================================================================

' Dieses Programm demonstriert, wie Daten von der Seriellen Schnittstelle
' per GET gelesen werden können. Werden für eine genau definierte Zeit keine
' Daten empfangen, tritt ein Timeout auf und das Lesen wird abgebrochen.
' Wenn das zurückgelieferte Byte gleich 0 ist, trat ein Timeout auf.

' --- Definitionen ----------------------------------------------------------

INCLUDE "omax.def"               'Definitionen für die Open-Maxi

DIM ende WORD                    'für überlauftolerante Timerabfrage
DIM databyte BYTE                'BYTE von der Seriellen Schnittstelle

DIM a,b,c BYTE                   'temporäre Variablen

' --- Hauptprogramm ---------------------------------------------------------

PrintSpc=ON    'Bei PRINT dezimale Zahlen mit führendem Leerzeichen ausgeben
End2Host=ON    'Bei Programmende (siehe END) gleich in den Host-Modus wechseln

?"Timeout für GET an der Seriellen Schnittstelle"

REPEAT

  ?"Bitte Taste drücken. Ende mit 'x'."

  b=GETmitTimeout

  IF b=0 THEN
    ?"Timeout!"
  ELSE
    ?"Empfangen wurde das Byte"b"."
  END IF

UNTIL b=ASC("x")

?:?"Programmende."
END            'Zurück in den Hostmodus. Neustart mit RETURN-Taste.

' --- Subroutinen und Funktionen --------------------------------------------

' Timeout für GET der Seriellen Schnittstelle

FUNCTION GETmitTimeout

  databyte=0

  ende=TIMER+100                 '2 Sekunden Timeout
  WHILE ende-TIMER>0 AND NOT RXD
'    PAUSE 1                      'bei Bedarf Strom sparen
  WEND

  IF RXD THEN GET databyte

  RETURN databyte

END FUNCTION

' --- Programmende ---------------------------------------------------------


Passender Link: Infosite zu den OM-Mikrocontrollern

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten: