


   '----------------------------------------------------------------
   '----------------------------------------------------------------
   '----  LED villogtatás
   '----  Atmega8
   '----
   '----  PORTD.0   -  villog kb félmásodpercenként
   '----------------------------------------------------------------
   '----------------------------------------------------------------


   $regfile = "m32def.dat"
   $crystal = 4000000
   '$hwstack = 32
   '$swstack = 10
   '$framesize = 40
   '$baud = 19200

'==============================================================================
   Config Pinc.0 = Output
   Led Alias Portc.0
   'Config Pinb.2 = Output
   'Ss Alias Portb.2

   Config Pind.2 = Input
   Nirq Alias Pind.2


   Dim Count As Byte
   Dim Temp As Byte
   Dim Rx(32) As Byte
   Dim Cmd(2) As Byte
   Dim Fifo(4) As Byte
   Dim Inirq As Integer


   Declare Sub Rf_cmd(byval Wert As Word)


   'config SPI
   Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 64 , Noss = 0 , Spiin = 0
   'Config Spi = Soft , Din = Pinb.4 , Dout = Portb.3 , Ss = Portb.2 , Clock = Portb.5 , Spiin = 0
   'Set Ss
   Set Led
   Waitms 2000
   Reset Led
   Waitms 2000
   Set Led
   'init the spi
   Spiinit

   Waitms 100
   Reset Led                                                'config beállás megvárása
'Print "hello"
'==============================================================================

   Call Rf_cmd(&H0000)
   Call Rf_cmd(&H918a)                                      'Configuration: 868MHz, crystal oscillator, 12,5pF, 134KHz, clock out OFF
   Call Rf_cmd(&Ha640)                                      '868MHz (860 + 6 )
   Call Rf_cmd(&Hc847)                                      '4.8kbps
   Call Rf_cmd(&Hc69b)                                      'AFC
   Call Rf_cmd(&Hc42a)                                      'data filter
   Call Rf_cmd(&Hc2a0)                                      'low batt./ clock divider
   Call Rf_cmd(&Hc042)                                      'receiver setting:
   Call Rf_cmd(&He000)                                      'wake-up timer:
   Call Rf_cmd(&Hcc00)                                      'low duty cycle:
   Call Rf_cmd(&Hce48)                                      'fifo config
   Call Rf_cmd(&Hce4b)                                      'fifo enable
   Call Rf_cmd(&Hc043)                                      'enable receiver

'(
   Call Rf_cmd(&H0000)
   Call Rf_cmd(&H898a)                                      'Configuration: 433MHzband, 12.5pf, 134kHz bandwidth
   Call Rf_cmd(&Ha620)                                      'Frequency: 433.92MHz
   Call Rf_cmd(&Hc811)                                      'Datarate: 19,2 kbit
   Call Rf_cmd(&Hc69b)                                      'AFC
   Call Rf_cmd(&Hc42a)                                      'data filter
   Call Rf_cmd(&Hc2e0)                                      'low batt./ clock divider
   Call Rf_cmd(&Hc042)                                      'receiver setting:
   Call Rf_cmd(&He000)                                      'wake-up timer:
   Call Rf_cmd(&Hcc00)                                      'low duty cycle:
   Call Rf_cmd(&Hce88)                                      'fifo config
   Call Rf_cmd(&Hce8b)                                      'fifo enable
   Call Rf_cmd(&Hc043)                                      'enable receiver
')
   Waitms 100                                               'config beállás megvárása

   'Set Portd.6
'==============================================================================
   '4 számot vár az adótól és azt betölti a RX()-be
   Do

      For Count = 1 To 4
   '      Reset Ss
         Bitwait Pind.2 , Reset

         Spiin Fifo(1) , 3
    '     Set Ss
         Rx(count) = Fifo(3)

      Next
      Call Rf_cmd(&Hce48)
      Call Rf_cmd(&Hce4b)                                   'Reset FIFO
      Set Led
            'Print Rx(1)
      'If Rx(2) = 1 Then
'         Set Led
 '     Else
 '        Reset Led
 '     End If

      '      Print Rx(1)
'      Print Rx(2)
'      Print Rx(3)
'      Print Rx(4)
   Loop

   End

'==============================================================================

   Sub Rf_cmd(byval Wert As Word)
      Cmd(2) = Wert And 255
      Shift Wert , Right , 8
      Cmd(1) = Wert
     ' Reset Ss
      Spiout Cmd(1) , 2
      'Set Ss
   End Sub