Hallo,

es läuft jetzt perfekt hier nun mein finaler Code, die wichtigen Punkte sind:

- Config Print verwenden

- print mit Strichpunkt hinten damit nur das wirkliche Zeichen gesendet wird

- Config Serialin = Buffered verwenden, da kommt es sehr auf die richtige Einstellung an

- Als Byte empfangen mit Inkey + Ischarwaiting

- und sehr viel Geduld !!


Code:
'Sensor
$regfile = "attiny2313.dat"
$crystal = 3579545
$baud = 4800
Portb = &B11111111

$hwstack = 32
$swstack = 10
$framesize = 40

Config Print = Portd.2 , Mode = Set
Config Pind.2 = Output

Config Debounce = 30

Waitms 300


Do
Debounce Pinb.0 , 0 , Schalter1 , Sub
Debounce Pinb.1 , 0 , Schalter2 , Sub
Debounce Pinb.2 , 0 , Schalter3 , Sub
Debounce Pinb.3 , 0 , Schalter4 , Sub
Debounce Pinb.4 , 0 , Schalter5 , Sub
Debounce Pinb.5 , 0 , Schalter6 , Sub
Debounce Pinb.6 , 0 , Schalter7 , Sub
Debounce Pinb.7 , 0 , Schalter8 , Sub
Loop


Schalter1:
Print "!10";
Return

Schalter2:
Print "!11";
Return

Schalter3:
Print "!12";
Return

Schalter4:
Print "!13";
Return

Schalter5:
Print "!14";
Return

Schalter6:
Print "!15";
Return

Schalter7:
Print "!16";
Return

Schalter8:
Print "!17";
Return

End

Code:
'Aktor
$regfile = "attiny2313.dat"
$crystal = 3579545
$baud = 4800

Dim A As String * 5
Dim Z As String * 1
Dim B As String * 5
Dim C As Byte

$hwstack = 32
$swstack = 10
$framesize = 40

Config Serialin = Buffered , Size = 6
Config Portb = Output

Enable Interrupts

Portd.2 = 0


Do

C = Ischarwaiting()
  If C = 1 Then
   C = Inkey()
   A = A + Chr(c)
End If


If Len(a) > 2 Then
B = A
Z = Mid(a , 1 , 1 )
End If


If Z = "!" Then
B = Mid(a , 1 , 5)
End If


If B = "!10" Then
Toggle Portb.0
A = ""

Elseif B = "!11" Then
Toggle Portb.1
A = ""

Elseif B = "!12" Then
Toggle Portb.2
A = ""

Elseif B = "!13" Then
Toggle Portb.3
A = ""

Elseif B = "!14" Then
Toggle Portb.4
A = ""

Elseif B = "!15" Then
Toggle Portb.5
A = ""

Elseif B = "!16" Then
Toggle Portb.6
A = ""

Elseif B = "!17" Then
Toggle Portb.7
A = ""

End If

Waitms 10

Loop

End
Mfg Jürgen