So ich habs jetzt mal zusammenkopiert, wie ich mir das vorstelle.
Ich glaube jedoch nicht, dass das jetzt aufs erste Mal funktioniert - vielleicht sieht ja jemand anderes den Thread hier noch und kann schnell mal drüber schauen.
Aber probieren kann mans ja:
Der Sendecode:
Und der Empfangscode:Code:$regfile = "m8def.dat" $crystal = 12000000 Dim Daten As Byte Dim A As Integer Dim Send as Byte Dim toggle as Byte Config Portb = Output Mainloop: Waitms 1000 Daten = 170 'Sende Startbedingung send = 1 waitms 10 send = 0 For A = 1 To 8 If Daten.0 = 1 Then Send = 1 Else Send = 0 End If rotate Daten , Right , 1 Waitms 500 Next A Goto Mainloop [[[[ DIESE FUNKTION MUSS ALLE 1 / 72000 s AUFGERUFEN WERDEN ]]]]] if send = 1 Then if toggle = 0 Then toggle = 1 PORTb.0 = 1 else toggle = 0 PORTb.0 = 0 end if else Portb.0 = 0 end if
Code:$regfile = "m8def.dat" $crystal = 12000000 Dim A As Integer Dim Rxdaten As Byte Dim Zustand As Integer Config Portd = Input Config Portb = Output Mainloop: startLoop: if PORTB.0 = 1 Then waitms(52) if NOT PORTB.0 = 0 Then goto startLoop end if else goto startLoop end if waitms 10 For A = 1 To 8 If PINb.0 = 0 Then Rxdaten.0 = 0 Else Rxdaten.0 = 1 End If rotate Rxdaten , Left , 1 Waitms 500 Next A PORTD = Rxdaten 'Ausgabe des gesendeten Bytes Goto Mainloop
Der Sendecode sendet alle 5050 ms die Befehle.
Dabei dauert ein Bit 500 ms und die Startbedinung 50 ms.
Vor jedem senden wird 1000 ms gewartet.
Das empfangene Byte wird an PORT D angelegt. D.h. den musst du noch auf Ausgang schalten (weiß ich nicht wie ...).
Grüße
Flite







Zitieren

Lesezeichen