Zitat Zitat von Dr.U.Bianchi
Daher bevorzuge ich:
Code:
Dim Gerät as Byte
Enable Interrupts 
Enable Int0 (Pin0, Port D für RS232) 
On Int0 Subroutine 
End 

Sub Subroutine() 
  gerät = inkey()
  if gerät=A then 
    for i=1 to AnzahlBytes
      Nachricht=inkey()
      wort=wort & Nachricht
    next
  else 
     schicke weiter zum Gerät B
  end if 
Return 

End
Ähm, da sind einige Sache, die ich nicht kapier:
1. Die Variable Gerät wird als Byte definiert und dann mit "A" verglichen?
Bei mir gibts das ein "Source variable doesnt match the target variable"
2. Enable Int0 (Pin0, Port D für RS232) hier kann doch was nicht stimmen oder? Was muss in die Klammer? Nur "Pin0" wahrscheinlich oder? Also wenn ich das richtig verstehe muss da praktisch der des Eingangs des RS232 genommen werden und wenn der sich ändert with Subroutine aufgerufen, seh ich das richtig?
3. Muss die Variable AnzahlBytes auf z.B. 8 von mir festgelegt werden? Schon oder?
4. Was soll das eigenlich mit dem Gerät? Gerät ist doch dann das erste empfangene Zeichen vom RS232 oder?





Hallo Frank !
Ich halte das für overkill und würd es nicht empfehlen.
die Config serialin=buffer .... - Angabe generiert bei einer ausreichenden Buffergröße eine tadellose, asynchrone Ringbuffer-routine. Mit dem "ischarwaiting" werden write- und read pointer verglichen, bei "=" wird null, sonst 1 zurückgegeben. dadurch kann ein folgendes inkey() auch für transparente daten (inclusive &00) verwendet werden.
Beim Beispiel ist das "print" in der ISR auch nur akzeptabel, wenn gleichzeitig config serialout= ( output ringbuffer) verwendet wird.
Blocking functions in einer ISR sind absolut "pfui"
Das Einzige, was man sich vorstellen könnte, wäre eine Terminator-definition, dh "On CR gosub .. " oder " on fill=70 gosub..." (overflow)
Weil aber der Buffer u. die Pointer eh definiert sind, kann man das auch selbst machen
(sich periodisch um seine Kinderchen zu kümmern, ist im Grunde die einzige Aufgabe der Haupt Do..LOOP Schleife)
*schnauf*
Is des schlimm wenn ich davon kein Wort verstehe???

mfg
jagdfalke