Hi,

ich habe hier grade ein ziemlich komisches Problem mit Bascom bzw. dem
AVR. Der Versuchsaufbau sieht so aus, dass Empangene Daten vom
HW UART zu einem Software UART weitergereicht werden sollen, ebenso
andersrum. Beides ist Interruptgesteuert (der RxD pin des Softuarts liegt
an INT0). Das Problem das sich auftut liegt in der Do..Loop Schleife. Zu
Testzwecken ist noch ein 2ter Softuart angeschlossen. Nur komischerweise
überspringt der Code manchmal die If Abfrage und ich erhalte an #3 eine 0.
Wie kann man dieses Überspringen verhindern?

Hier der Code:
Code:
$regfile = "m168def.dat"
$crystal = 14745000
$baud = 115200

Open "comd.6:115200,8,n,1" For Output As #1
Open "comd.7:115200,8,n,1" For Input As #2
Open "comb.1:19200,8,n,1" For Output As #3

On Urxc R1
On Int1 R2 Nosave
Config Int1 = Falling
Enable Urxc
Enable Int1
Enable Interrupts

Dim A As Byte
Dim F As Byte
Dim S As Byte

Do
   If S = 1 Then
      Print #3 , S
   End If
Loop

R1:
   A = Udr
   Print #1 , Chr(a);
Return

R2:
   F = Inkey(#2)
   Print Chr(f);
Return

Close #1
Close #2
Close #3

End