N'Abend,
laut meinem Code schiebe ich ja noch 2 Bytes hinterher:
und hier wird es über SPI übertragen:Code:Sub Rf12_txdata(byval Txlen As Byte) Temp = Rf12_trans(&H8238) : Rf12_ready 'Power CMD: synt.& PLL on Temp = Rf12_trans(&H8230) : Rf12_ready Temp = Rf12_trans(&H0000) : Rf12_ready 'Status holen Rf12_status = Temp 'Status einlesen Temp = Rf12_trans(&Hb8aa) : Rf12_ready 'Preamble Temp = Rf12_trans(&Hb8aa) : Rf12_ready 'Preamble Temp = Rf12_trans(&Hb8aa) : Rf12_ready 'Preamble in FIFO schieben Temp = Rf12_trans(&Hb82d) : Rf12_ready 'Startzeichen: 2D für den Empfänger Temp = Rf12_trans(&Hb8d4) : Rf12_ready 'Startzeichen: D4 für den Empfänger Print "sende1" For Lv = 1 To Txlen Rf12_ready Temp = &HB800 + Rf12_data(lv) 'Sende Nutzdaten Temp = Rf12_trans(temp) 'Toggle Led2 Print "temp" ; Temp Next Lv Temp = Rf12_trans(&Hb8aa) : Rf12_ready Temp = Rf12_trans(&Hb8aa) : Rf12_ready 'Dummybyte nachschieben Temp = Rf12_trans(&H8208) : Rf12_ready 'Power CMD: synt.& PLL off, Quarz-clk läuft weiter Print "sende2" End Sub
Irgend eine Idee warum das letzte Byte dennoch falsch sein kann?Code:Function Rf12_trans(byval Wert As Word) As Word Local Lowbyte As Byte Local Highbyte As Byte Lowbyte = Low(wert) : Highbyte = High(wert) Reset Spi_cs Highbyte = Spimove(highbyte) : Lowbyte = Spimove(lowbyte) Set Spi_cs Temp = Makeint(lowbyte , Highbyte) 'debug Rf12_trans = Temp Print "SPI receive: " ; Hex(temp) Print "SPI send " ; Hex(highbyte) End Function






Zitieren

Lesezeichen