Nein hab ich nicht. Es wird senderseitig nur das ganznormale serielle Signal auf die Schaltung gegeben. Es ist nur leider notwendig die Sofware UART zu nehmen da es bei mir mit der Hardware UART nicht geklappt hat nur 300 Baud zu machen.
Hir mal das senderseitige Programm:
Code:
$regfile = "at26def.dat"
$crystal = 3686400
Ddrb = &B00001000
Do
Open "comb.1:300,8,n,1" For Output As #1
Print #1 , "HAllo! Es geht!"
Waitms 100
Loop
Auf der Empfängerseite wird nur überprüft ob jetzt eine hohe oder eine niedrige Frequenz anliegt. Und je nach dem wird ein Pin von high auf low umgeschaltet. Das Timing macht also quasi schon der die Schnittstelle des Senders.
Hir mal das Prog des Empfängers
Code:
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 8000000 'Quarz: 3.6864 MHz
Config Portd = Output
'Portb = &B00000000
Dim Fr As Integer
Dim Merk As Bit
Dim X As Integer
Dim Temp As Integer
Config Timer1 = Timer , Prescale = 1
On Timer1 Timer_irq
Const Timervorgabe = 60000
Enable Timer1
Enable Interrupts
Do
If Merk <> Pinb.0 Then
Fr = Fr + 1
Merk = Pinb.0
End If
Loop
Timer_irq:
If Fr < 2 Then
Portd.2 = 0
Else
Portd.2 = 1
End If
Fr = 0
Timer1 = Timervorgabe
Return
Das Empfängerseitige könnte man wohl noch deutlich verbessern (Interrupts usw.) woduch sich mit Sicherheit auch noch die Übertragungsgeschwindigkeit erhöhen ließe. Müßte ich eigentlich nemnächst mal probieren.
Lesezeichen