Nun, ich hatte für die Empfangsroutine festgelegte Größe für den Empfangspuffer (Recive_buffer_size) zu klein eingestellt. In der unteren Sub habe ich dann noch Änderungen vorgenommen.
Sollte jetzt irgend woher ein Signal zur Auslösung der Empfangsroutine kommen, wird der gesammte Frame empfangen und nicht weiter ausgewertet.
Code:'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INT1 ISR(Daten vom RFM12) 'Interrupt Routine zum empfangen der bytes aus dem RFM 12 Ffit_isr: 'Stop Timer1 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 = 4 End If Rf12_data(lv) = Temp If Lv = 3 Then Framelength = Temp If Lv >= Framelength And Rf_sync = 1 Then 'alles eingetroffen Rf_rxd = 1 'Flag setzen und Empfänger zurück setzen Rf_sync = 0 End If Incr Lv ' Überlauf abgefangen , passend zum Empfangsbuffer If Lv >= Recive_buffer_size Then Rf_sync = 0 Lv = 1 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 Return End







Zitieren
Lesezeichen