Hallo,

hier mein Code.
Bisher sehe ich nur etwas wenn ich in Terminalfenster 1200Baud einstelle.
leider nicht mein Text sonder nur wirre Zeichen

Hier mein Code

Code:
$regfile = "m8def.dat"
$crystal = 7372800
$baud = 9600


Config Pinc.0 = Input                                       ' Schaltport
Config Pinc.1 = Input
Config Pinc.2 = Input
Config Pinc.3 = Input
Config Pinc.4 = Input
Config Pinc.5 = Input                                       ' N.N.

Config Portb.0 = Output                                     ' Schaltport
Config Portb.1 = Output
Config Portb.2 = Output
Config Portd.7 = Output
Config Portd.6 = Output

Config Portb.5 = Output                                     ' Kontrollport

Config Portd.2 = Output                                     ' RS485


Dim I As Byte
Dim Key As Byte

Dim S As String * 7
Dim A As String * 4
Dim X1 As Boolean
Dim X2 As Boolean
Dim X3 As Boolean
Dim X4 As Boolean
Dim Z As String * 1

' **** Timer *********************************************

Dim T1 As Long
Dim T2 As Long
Dim T3 As Long
Dim T4 As Long
Dim T5 As Long


Dim R1 As Bit
Dim R2 As Bit
Dim R3 As Bit
Dim R4 As Bit
Dim R5 As Bit


T1 = 0
T2 = 0
T3 = 0
T4 = 0
T5 = 0


Const Keys = 5

'Schaltstelle "$O001"                                        ' Name der Schaltstelle
                                                             ' Format: $O = Output
                                                             '         $I = Input
                                                             '         $IO = InOut

' **** Programmstart **************************************

Do


   R1 = Portb.0
   R2 = Portb.1
   R3 = Portb.2
   R4 = Portd.6
   R5 = Portd.7



' **** RS485 Aktivieren und Bus prüfen

On Urxc Onrxd
Enable Urxc
Enable Interrupts


If Len(s) > 3 Then
    A = S
      S = ""
      Goto Pruefung


Else

     Disable Interrupts
 Disable Urxc
 'Portd.2 = 1
 'Print
 'Portd.2 = 0
   End If


'Zeitschalter (Zähler)           10.000.000 = 30 Minute

 If T1 > 0 Then T1 = T1 + 1

 If T1 > 30000000 Then
 Portd.6 = 0
 T1 = 0
 Else
 End If


 If T2 > 0 Then T2 = T2 + 1

 If T2 > 80000000 Then
 Portb.0 = 0
 T2 = 0
 Else
 End If


 If T3 > 0 Then T3 = T3 + 1

 If T3 > 30000000 Then
 Portb.2 = 0
 T3 = 0
 Else
 End If


 If T4 > 0 Then T4 = T4 + 1

 If T4 > 15000000 Then
 Portd.7 = 0
 T4 = 0
 Else
 End If


 If T5 > 0 Then T5 = T5 + 1

 If T5 > 30000000 Then
 Portb.1 = 0
 T5 = 0
 Else
 End If


 Portb.5 = 1

 For I = 1 To Keys
 Key = I
 Select Case Key
 Case 1 : Debounce Pinc.0 , 0 , Key_o1 , Sub                'Port 1.
 Case 2 : Debounce Pinc.1 , 0 , Key_o2 , Sub                'Port 2
 Case 3 : Debounce Pinc.2 , 0 , Key_o3 , Sub                'Port 3
 Case 4 : Debounce Pinc.3 , 0 , Key_o4 , Sub                'Port 4
 Case 5 : Debounce Pinc.4 , 0 , Key_o5 , Sub                'Port 5


 End Select
Next

Loop

   Key_o1:
   Toggle Portb.0                                           'Buchse 1

   Gosub Zustand

   If T2 = 0 Then
   T2 = 1
   Else
   T2 = 0
   End If
   Return


   Key_o2:
   Toggle Portb.1                                           'Buchse 2

   Gosub Zustand

   If T5 = 0 Then
   T5 = 1
   Else
   T5 = 0
   End If
   Return


   Key_o3:
   Toggle Portb.2                                           'Buchse 3

   Gosub Zustand

   If T3 = 0 Then
   T3 = 1
   Else
   T3 = 0
   End If
   Return


   Key_o5:

   Toggle Portd.6                                           'Buchse 4

   Gosub Zustand

   If T1 = 0 Then
   T1 = 1
   Else
   T1 = 0
   End If
   Return


   Key_o4:
   Toggle Portd.7                                           'Buchse 5

   Gosub Zustand

   If T4 = 0 Then
   T4 = 1
   Else
   T4 = 0
   End If
   Return


'****************************************************


 Onrxd:
  S = S + Chr(udr)
 Return

'****************************************************


Pruefung:

 Z = Mid(a , 1 , 1 )
 If Z = "!" Then
 Goto Auswerter
 A = Mid(s , 1 , 6)
 Else

 S = ""
 End If
Return

'****************************************************

Zustand:
 Disable Interrupts
 Disable Urxc
 Waitms 100

   R1 = Portb.0
   R2 = Portb.1
   R3 = Portb.2
   R4 = Portd.6
   R5 = Portd.7

   Disable Interrupts
   Disable Urxc
   Waitms 5
   Portd.2 = 1
   Waitms 10
   Print
   Print "$O001" ; R1 ; R2 ; R3 ; R4 ; R5
   Waitms 5
   Portd.2 = 0

  Return



'****************************************************

Auswerter:
 Disable Interrupts
 Disable Urxc
 Waitms 100
 Portd.2 = 1

 Waitms 10
 Print
 'Print A

 Print "$O001" ; R1 ; R2 ; R3 ; R4 ; R5


 Waitms 100
 Portd.2 = 0

 Return


 End