HAllo Holli & Dieter,
mit dem Code von oben
Code:
'Interrupt Routine zum empfangen der bytes aus dem RFM 12
Ffit_isr:
Set Led1 ':zum debuggen für LA
Reset Led1
Spiin Fifo(1) , 2 '1 Byte lesen
Temp = Fifo(2)
If Temp = Snap_sync And Rf_sync = 0 Then
Rf_sync = 1
Lv = 1
Framelength = 6
End If
If Lv = 3 Then
Ndb = Temp And &H0F 'Anzahl Datenbytes berechnen
Ndb = 9 'zum debuggen
Select Case Ndb
Case 0 To 8 : Framelength = 6 + Ndb '6-14 (0--8 Datebyte)
Case 9 : Framelength = 6 + 16 '22 (16 Datenbyte)
Case 10 : Framelength = 6 + 32 '38 (32 Datenbyte)
'Case 11 : Framelength = 6 + 64 '70 (64 Datenbyte)
End Select
End If
If Lv >= Framelength And Rf_sync = 1 Then 'alles eingetroffen
Rf_rxd = 1 'Flag setzen und Empfänger zurück setzen
Rf_sync = 0
Call Rf_cmd(&H0000) 'read status
Call Rf_cmd(&Hca81) 'Reset FIFO wir warten wieder auf SYNC vom RFM 12
Call Rf_cmd(&Hca83) 'enable FIFO
End If
Rf12_data(lv) = Temp
Incr Lv
' Überlauf abgefangen , passend zum Empfangsbuffer
If Lv >= Recive_buffer_size Then
'Überlauf
Rf_sync = 0
Lv = 1
Rf12_s = "" 'buffer löschen
End If
Return
kann ich gut meine Daten empfangen. Nur leider habe ich festgestellt, dass das letzte Byte nicht mit dem gesendeten übereinstimmt. Woran kann das liegen?
Grüße Matthias
Lesezeichen