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







Zitieren

Lesezeichen