Zitat Zitat von panier Beitrag anzeigen
Getestet habe ich verschiedene Ports (auch PD3 mit INT1), in zig Kombinationen mit Buffer und ohne .....
Die Idee hinter ext. Int1 ist, dass man den Softuart-Empfang dort reinpackt um eine unmittelbare Reaktion auf eingehende Daten zu bekommen.
Eine leere Int1-ISR nutzt Dir nix. Nicht vergessen zum Abschluss der ISR das INTF1 zu löschen, ist in diesem Fall notwendig.
Nachteile einer solchen Konstruktion: Blockierung anderer ISR's während des Empfangs und andere ISR's können den Empfang behindern.

@PicNick
Code:
 .......dein code etc
   ' ---------- bis hierhin funktioniert alles ------------------------
 DIM instring as string * 8
 DIM Inchar(8) as byte at instring overlay
 DIM inidx as byte

  inidx = 0
  do 
          incr inidx
          X = Inkey(#2)
          inchar(inidx) = X
   while  X > 0                        

   Print "<";Instring;">Len:";inidx
Das wird so nix, denn da müsste der PC dann senden, wenn der µC genau diese Stelle des Codes ausführt. Da wäre ein Waitkey() angebracht. Das hätte allerdings den Nachteil, dass der Code hängen bleibt, wenn nix von der Seriellen reinkommt.
Man könnte sich für Inkey() selber etwas stricken, so in etwa:
Code:
Dim Time_Out As Word
  Time_Out = 10000
    While PinB.4 = 1 And Time_Out > 0
      Decr Time_Out
    Wend
  X = Inkey(#2)
' ...