Hallo da draußen,

ich habe ein Board mit einem ATMega1284 unter BASCOM...9.9. Es funktioniert soweit auch alles.

Jetzt habe ich einen SoftUart #5 ist mit

Code:
Open "comd.4:9600,8,N,1" For Input As #5
initialisiert.

Wenn ich im Hauptprogramm eine Abfrage der Seriellen Schnittstelle mit inkey(#5) mache, funktioniert diese nur manchmal.

Baudrate, RS232-Treiber-IC, Terminal-Einstellungen etc. sind in Ordnung, es geht ja auch, aber eben nur manchmal.

Der Code in der Do - Loop - Haupt-Schleife:

Code:
Do
  If Inkey(#5) <> 0 Then    ' Zeichen da ?
    Print #6 , "Zeichen da!"
  Else
    Print #6 , ".";
  End If
  waitms 10
loop
Wenn ich Daten über das Terminal an #5 schicke werden diese nur manchmal erkannt (="Zeichen da!"). Meist wird jedoch der Tastendruck ignoriert und das Programm sendet ein ".".

Je häufiger bzw. schneller ich die inkey()-Abfrage mache, durch verkleinern der wait-Zeit, desto höher die "Trefferrate".

Dem Handbuch nach ist inkey() die einzige Möglichkeit bei einm Soft-Uart 'rauzubekommen, ob ein Zeichen angekommen ist. Input #5 kann ich nicht machen, da das Programm dann an der Abfrage wartet.

Das Daten-Eingangsregister des Soft-Uarts scheint von irgend jemandem überschrieben zu werden, oder gibt es so etwas wie ein "Receiver-Ready-Flag"

Hat jemand eine Erklärung?

Vielen Dank

Otto Richter