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 

 Re: RS 232 Buffer-Problem Kategorie: Programmierung Basic (von Dietmar, Homepage - 18.03.2006 23:38)
 Als Antwort auf RS 232 Buffer-Problem von Klaus Knorr - 18.03.2006 1:20
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini
Hallo Klaus

> Ich muss 32 Bytes hintereinander über die RS232 in die M-Unit 1.1 einlesen.

Das ist selbst in BASIC möglich, allerdings darf die Leseschleife kein FOR..NEXT enthalten und der PAUSE-Befehl ist natürlich ebenso tabu. Ein "PAUSE 100" wartet 2 Sekunden. In der Zeit könnten 1920 Bytes über die RS232 übertragen werden. Hier ein Beispiel in OCBASIC. Mit diesem Verfahren lassen sich auch einige Bytes überlesen und nur ein Teil der Daten auswerten. Für CCBASIC muß OPTION und WHILE..WEND entfernt werden. Außerdem muß PUSH definiert werden und CCBASIC kennt nur "GET PUSH".

' 32 Bytes von der seriellen Schnittstelle (RS232) mit der C-Control 1.1 lesen
' Programmiersprache: OCBASIC und CCBASIC

OPTION CCBAS

DEFINE led PORT[2]

DEFINE i BYTE
DEFINE d1 BYTE
DEFINE d2 BYTE

WHILE TRUE

  led=ON

  GET i : GET i : GET i : GET i : GET i                  '30 Bytes empfangen
  GET i : GET i : GET i : GET i : GET i
  GET i : GET i : GET i : GET i : GET i
  GET i : GET i : GET i : GET i : GET i
  GET i : GET i : GET i : GET i : GET i
  GET i : GET i : GET i : GET i : GET i

'  PUSH GET : PUSH GET : PUSH GET : PUSH GET : PUSH GET  'oder 30 Bytes ueberlesen
'  PUSH GET : PUSH GET : PUSH GET : PUSH GET : PUSH GET
'  PUSH GET : PUSH GET : PUSH GET : PUSH GET : PUSH GET  'In CCBASIC erforderlich:
'  PUSH GET : PUSH GET : PUSH GET : PUSH GET : PUSH GET  'DEFINE PUSH AD[1]
'  PUSH GET : PUSH GET : PUSH GET : PUSH GET : PUSH GET
'  PUSH GET : PUSH GET : PUSH GET : PUSH GET : PUSH GET

  GET d1    'die letzten beiden Bytes lesen
  GET d2

  led=OFF

  PRINT d1  'und deren Wert ausgeben
  PRINT d2

WEND

Viele Grüße
Dietmar

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

 Antwort schreiben

Bisherige Antworten:

Re: RS 232 Buffer-Problem (von Klaus Knorr - 22.03.2006 19:26)