$regfile = "m8def.dat"
$hwstack = 32
$swstack = 10
$framesize = 40
$crystal = 14745600
$baud = 19200
Baud = 19200


Config Portd.2 = Input
Nirq Alias Pind.2

Config Portd.7 = Output
Fsk Alias Portd.7
Set Fsk

Led Alias Portb.1
Config Portb.1 = Output                                     'LED zur Kontrolle

Dim Count As Byte
Dim Temp As Byte
Dim Cmd(2) As Byte
Dim Sdi(2) As Byte
Dim Zahl As Byte
Sdi(1) = &HB8
Zahl = 1                                                    'SPI TX command high byte


Declare Sub Sdi_send(byval Sdi_byte As Byte)
Declare Sub Rf_cmd(byval Tmp As Word)


'config SPI
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 64 , Noss = 0
'Config Spi = Soft , Din = Pinb.4 , Dout = Portb.3 , Ss = Portb.2 , Clock = Portb.5

'init the spi
Spiinit

Waitms 300

Toggle Led

Call Rf_cmd(&H0000)
Call Rf_cmd(&Hc0e0)                                         'low battery, clock 10 MHz
Call Rf_cmd(&H80e7)                                         'Configuration: 868MHzband, 12pf, enable FIFO
'Call Rf_cmd(&H80d7)                             'Configuration: 433MHzband, 12pf, enable FIFO
Call Rf_cmd(&H8200)                                         'power management: es, ex, et off; enable clock output
Call Rf_cmd(&Hc2ac)                                         'data filter command
Call Rf_cmd(&Ha686)                                         'Frequency: 868,35MHz
'Call Rf_cmd(&Hc603) 'Datarate: 86,2 kbit
'Call Rf_cmd(&Hc605)  'Datarate: 57,4 kbit
'Call Rf_cmd(&Hc608)  'Datarate: 38,4 kbit
Call Rf_cmd(&Hc611)                                         'Datarate: 19,2 kbit
'Call Rf_cmd(&Hc623)    'Datarate: 9,6 kbit
'Call Rf_cmd(&Hc646) 'Datarate: 4,8 kbit
'Call Rf_cmd(&Hc691)  'Datarate: 2,4 kbit
Call Rf_cmd(&H94a1)                                         'receiver setting: 134kHz, -97dbm
Call Rf_cmd(&Hc22c)                                         'data filter:
Call Rf_cmd(&Hca81)                                         'FIFO:
Call Rf_cmd(&Hc483)                                         'AFC:
Call Rf_cmd(&H9850)                                         'TX control
Call Rf_cmd(&He000)                                         'wake-up
Call Rf_cmd(&Hc800)                                         'low duty-cycle
Call Rf_cmd(&H0000)


Do

Set Led


Call Rf_cmd(&H8238)                                         'et,es,ex ON

'Sync frames
Call Sdi_send(&H2d)
Call Sdi_send(&Hd4)

'3 Bytes Data
Call Sdi_send(&H31)
Call Sdi_send(&H32)
Call Sdi_send(zahl)                                         'Hier wird die neue Variable ausgegeben

'Dummy Bytes
Call Sdi_send(&Haa)                                         'send 2 dummy bytes to empty TX FIFO
Call Sdi_send(&Haa)

Spiinit


Call Rf_cmd(&H8200)                                         'et,es,ex OFF
Call Rf_cmd(&H0000)                                         'read status

Reset Led

Wait 2

Zahl = Zahl + 1                                             'Erhöhung der Variable um 1, wenn 255 erreicht wird, Rücksetzung auf 1
If Zahl = 255 Then Zahl = 1

Loop

End


Sub Sdi_send(byval Sdi_byte As Byte)                        'wait for TX FIFO IRQ
   Bitwait Nirq , Reset
   Sdi(2) = Sdi_byte
   Spiout Sdi(1) , 2
End Sub


Sub Rf_cmd(byval Tmp As Word)
   Cmd(2) = Tmp And 255
   Shift Tmp , Right , 8
   Cmd(1) = Tmp
   Spiout Cmd(1) , 2
End Sub