Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


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: Serielle Schnittstelle mit 7 Datenbits Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 19.11.2018 1:32)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini M-Unit, Open-Mini Station
' ============================================================================
' An der Seriellen Schnittstelle der Open-Maxi mit 7 Datenbits empfangen
' In OCBASIC 1.12a_e1 von Dietmar Harlos am 19. November 2018
' ============================================================================

' Die externe Quelle sendet im Format 9600 Baud, 7 Datenbits, gerade Parität
' und 1 Stopbit. Zum Testen läßt sich Terminal32.EXE verwenden. Es muß in
' diesem Fall mit dem Parameter "1,9600,e,7,1" gestartet werden. Die Open-Maxi
' empfängt im Format 9600 Baud, 8 Datenbits, keine Parität und 1 Stopbit.
' Wie hier gezeigt, funktioniert das Empfangen trotzdem. Das gesendete
' Paritätsbit kann vom Anwender entweder ausgewertet oder verworfen werden.

' Zum Testen kann im Terminalprogramm die Taste "Strg" zusammen mit einer
' Buchstabentaste gedrückt werden: "Strg+A" sendet das Byte mit dem Wert 1.
' "Strg+B" sendet 2. "Strg+C" sendet 3, usw. Mit "Strg+Leertaste" wird 0
' gesendet. Die Ausgaben der Open-Maxi erscheinen ebenfalls im Terminal-
' programm. Das Paritätsbit wird so gesendet, daß die 1er Bits im gesendeten
' Byte eine gerade Anzahl ergeben. Beispielsweise ist beim Senden von 1 das
' Paritätsbit gesetzt. Die Open-Maxi empfängt deshalb $81.

' Die Open-Maxi bietet eine in Hardware implementierte Serielle Schnitt-
' stelle, die mit einem Empfangsinterrupt und 32 Byte Empfangsbuffer
' ausgestattet ist.

' --- Definitionen für das System --------------------------------------------

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

' --- Definitionen des Anwenders ---------------------------------------------

DIM data BYTE              'eine Variable

' --- Das Hauptprogramm ------------------------------------------------------

WHILE TRUE
  IF RXD THEN
    GET data               'ein Byte über die Serielle Schnittstelle empfangen
    PRINT

    PUT ASC("$")           'empfangenes Byte im Hexdezimalformat ausgeben
    hex data
    PUT ASC(" ")

    IF data>=&h80 THEN     'wenn größer/gleich 128: gerade Parität gesendet
      PUT "E"
    ELSE
      PUT "-"
    END IF
    PUT ASC(" ")

    PUT ASC("$")
    hex data AND &h7f      'Paritätsbit löschen, nur die unteren 7 Bits
    PUT ASC(" ")           '  verwenden

    PUT data AND &h7f      'und als Echo die unteren 7 Bits im ASCII-Code
    PRINT                  '  senden
  END IF
  PAUSE 5
WEND

End2Host=ON                'Nach Programmende in den Host-Modus
END                        'Programmende, Neustart mit der Enter-Taste

' --- Subroutinen ------------------------------------------------------------

' HEX$ für BYTE in Kleinbuchstaben unter Verwendung von nur einer Variable.

' Besonderheit: Die Variable wird nicht verändert.

PROCEDURE hex(data)
  PUT (data SHR 4)+48+(((data SHR 4)>9) AND 39)
  PUT (data AND 15)+48+(((data AND 15)>9) AND 39)
  RETURN
END PROCEDURE

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


Passender Link: Bedienungsanleitung zur Open-Macro und Open-Maxi

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

 Antwort schreiben

Bisherige Antworten:

Re: Demoprogramm: Serielle Schnittstelle mit 7 Datenbits (von Jürgen - 22.11.2018 23:01)
    Re: Demoprogramm: Serielle Schnittstelle mit 7 Datenbits (von Dietmar - 23.11.2018 1:21)
        Re: Demoprogramm: Serielle Schnittstelle mit 7 Datenbits (von Jürgen - 24.11.2018 0:28)