Ich habe noch nie in Bascom programmiert und habe mir gerade mal nur den Sendecode angeschaut.
Das kann so nicht funktionieren.
Erstens: Wie ich schon zweimal erwähnt habe. Die Sende LED darf nicht dauernd leuchten. Du musst sie mit 36 kHz modulieren - sonst liefert dein TSOP Empfänger IMMER nur 0 zurück.
In den Sende routinen musst du nicht 500 ms warten (was sogar falsch ist) und du musst auch nicht dien PORTb.0 wieder auf Null zurück setzen.
Zur Modulation.
Code:
$regfile = "m8def.dat"
$crystal = 12000000
Dim Daten As Byte
Dim A As Integer
Config Portb = Output
Mainloop:
Daten = 170
For A = 1 To 8
If Daten.0 = 1 Then
Gosub Send1
Else
Gosub Send0
End If
rotate Daten , Right , 1
Waitms 500
Next A
Goto Mainloop
Send1:
Send = 1
Goto Mainloop
Send0:
Send = 0
Goto Mainloop
Timer [der alle 1/ 72 000 s aufgerufen wird]:
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
So etwa sollte die Senderoutine aussehen.
Ich schau mir gleich noch die Empfangsroutine an.
Grüße
Flite
EDIT: Ach ja: eine Startbedingung fehlt natürlich auch. Sonst empfängt dein Empfänger nachher immer nur müll ...
Lesezeichen