Irgendwie fehlt mir da was. Beispielcode sollte compilierfähig sein.
Dein Code würde ich etwa so umsetzen (Fehlende Typen einfach angenommen, natürlich ungestestet)):
Code:$regfile = "M32def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 10 $framesize = 40 $baud = 9600 Dim Position As Byte Dim B As Byte Dim Uz(6) As Byte Dim Telegramm(60) As Byte Dim Ttype As Byte At Telegramm + 1 Overlay Dim Uz_std10 As Byte At Telegramm + 4 Overlay ' = Mid(telegramm , 5 , 1) Dim Uz_std1 As Byte At Telegramm + 5 Overlay ' = Mid(telegramm , 6 , 1) Dim Uz_min10 As Byte At Telegramm + 6 Overlay ' = Mid(telegramm , 7 , 1) Dim Uz_min1 As Byte At Telegramm + 7 Overlay ' = Mid(telegramm , 8 , 1) Dim Uz_sek10 As Byte At Telegramm + 8 Overlay ' = Mid(telegramm , 9 , 1) Dim Uz_sek1 As Byte At Telegramm + 9 Overlay ' = Mid(telegramm , 7 , 1) La1 alias Uz_std10 La2 Alias Uz_std1 La3 Alias Uz_min10 La4 Alias Uz_min1 La5 Alias Uz_sek10 Const Lebensz = 5 '??? Const Platzt = 6 '??? Dim Seg_array(10) As Byte '??? Config Serialin = Buffered , Size = 60 ', Bytematch = 013 ' Serielles Input 'Ausgänge: Zeit_segmente Alias Portc.7 ' Ausgang für die Uhr Rennz Alias Portc.6 ' Ausgang für die verbleibende Restzeit Licht_5 Alias Portc.5 ' Ausgang für Lampe 5 Licht_4 Alias Portc.4 ' Ausgang für Lampe 4 Licht_3 Alias Portc.3 ' Ausgang für Lampe 3 Licht_2 Alias Portc.2 ' Ausgang für Lampe 2 Licht_1 Alias Portc.1 ' Ausgang für Lampe 1 Zeit_strobe_port Alias Portb '??? Zeit_strobe_pin Alias 0 '??? Data_channel Alias Portb.1 Clock_channel Alias Portb.2 '??? Do '??? If Ischarwaiting() = 1 Then Gosub Empfangen End If Loop End Empfangen: B = Inkey() If B = 13 Then Gosub Auswerten Position = 0 Else Incr Position Telegramm(position) = B End If Return Auswerten: If Ttype = Lebensz Then If Uz_std10 = 48 Then Uz(1) = Seg_array(10) Else Uz(1) = Seg_array(uz_std10) End If If Uz_std1 = 48 Then Uz(2) = Seg_array(10) Else Uz(2) = Seg_array(uz_std1) End If If Uz_min10 = 48 Then Uz(3) = Seg_array(10) Else Uz(3) = Seg_array(uz_min10) End If If Uz_min1 = 48 Then Uz(4) = Seg_array(10) Else Uz(4) = Seg_array(uz_min1) End If If Uz_sek10 = 48 Then Uz(5) = Seg_array(10) Else Uz(5) = Seg_array(uz_sek10) End If If Uz_sek1 = 48 Then Uz(6) = Seg_array(10) Else Uz(6) = Seg_array(uz_sek1) End If ' LA1 = Mid(telegramm , 5 , 1) ' LA2 = Mid(telegramm , 6 , 1) ' LA3 = Mid(telegramm , 7 , 1) ' LA4 = Mid(telegramm , 8 , 1) ' LA5 = Mid(telegramm , 9 , 1) If LA1 = 49 Then Licht_1 = 1 Else Licht_1 = 0 End If If La2 = 49 Then Licht_2 = 1 Else Licht_2 = 0 End If If La3 = 49 Then Licht_3 = 1 Else Licht_3 = 0 End If If La4 = 49 Then Licht_4 = 1 Else Licht_4 = 0 End If If La5 = 49 Then Licht_5 = 1 Else Licht_5 = 0 End If Shiftout Data_channel , Clock_channel , Uz(1) Shiftout Data_channel , Clock_channel , Uz(2) Shiftout Data_channel , Clock_channel , Uz(3) Shiftout Data_channel , Clock_channel , Uz(4) Shiftout Data_channel , Clock_channel , Uz(5) Shiftout Data_channel , Clock_channel , Uz(6) Pulseout Zeit_strobe_port , Zeit_strobe_pin , 10000 Elseif Ttype = Platzt Then nop End If Return







Zitieren

Lesezeichen