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
Mfg JürgenCode:'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







Zitieren
Lesezeichen