Hi,
ja der Empfänger und Interupt muss nach dem senden wieder richtig initialisiert werden. Für RN-Mikrofunk habe ich gerade keinen Beispielcode parat aber für RN-AVR Universal.
Hier sieht die Senderoutine, die auch nach einen Interrupt Empfang funktioniert, so aus:
Also so ähnlich oder fast genauso sollte es bei RN-Mikrofunk auch klappen.Code:Sub Rfm12_senden(byval Anzahl As Integer)Local Ni As Byte Disable Int0 D = Spitransfer(&H8238) 'Enable Transmitter; enable Synthesizer ;enable Crystal Osc Gosub Rfm12_warte D = Spitransfer(&Hb8aa) Gosub Rfm12_warte D = Spitransfer(&Hb8aa) Gosub Rfm12_warte D = Spitransfer(&Hb8aa) Gosub Rfm12_warte D = Spitransfer(&Hb82d) Gosub Rfm12_warte D = Spitransfer(&Hb8d4) For Ni = 1 To Anzahl Gosub Rfm12_warte D = &HB800 + Ausgabedaten(ni) D = Spitransfer(d) Next Ni Gosub Rfm12_warte D = Spitransfer(&Hb8aa) Gosub Rfm12_warte D = Spitransfer(&Hb8aa) Gosub Rfm12_warte D = Spitransfer(&H82d9) 'alles aus D = Spitransfer(&H82d9) 'Empfänger ein D = Spitransfer(&Hca83) D = Spitransfer(&H0000) Eifr.intf0 = 1 Enable Int0 End Sub
Wichtig darin sind diese Zeilen:
Code:Sub Rfm12_senden(byval Anzahl As Integer) ... Disable Int0 ... D = Spitransfer(&H82d9) 'alles aus D = Spitransfer(&H82d9) 'Empfänger ein D = Spitransfer(&Hca83) D = Spitransfer(&H0000) Eifr.intf0 = 1 Enable Int0 End Sub
Ich nehme die Funktion selbst zum quittieren von Funkmessages!







Zitieren


Lesezeichen