N'Abend,
laut meinem Code schiebe ich ja noch 2 Bytes hinterher:
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
und hier wird es über SPI übertragen:
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
Irgend eine Idee warum das letzte Byte dennoch falsch sein kann?
Lesezeichen