HAllo Holli & Dieter,
mit dem Code von obenkann ich gut meine Daten empfangen. Nur leider habe ich festgestellt, dass das letzte Byte nicht mit dem gesendeten übereinstimmt. Woran kann das liegen?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
Grüße Matthias







Zitieren

Lesezeichen