NORDIC CORE 51 -nrf24e1

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

NORDIC CORE 51 -nrf24e1

Mensagempor tcpipchip » 20 Ago 2013 16:26

Se alguem tiver interesse, aqui esta código fonte que implementei no BASCOM.

Código: Selecionar todos
$include "nrf24e1.inc"
$crystal = 16000000

Config Timer0 = Timer , Gate = Internal , Mode = 1

Dim Addr_count As Const 4
Dim Addr_index As Const 8

Declare Sub Transmitpacket(b As Byte)
Declare Sub Transmitter
Declare Sub Receivepacket
Declare Sub Receiver
Declare Sub Delay100us(b As Byte)
Declare Sub Spireadwrite(b As Byte)
Declare Sub Init
Declare Sub Inittimer
Declare Sub Led(b As Byte)

Dim I As Byte
Dim Status As Byte
Dim R As Byte
Dim T As Byte
Dim U As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim G As Byte

Dim Timer_count_parcial As Byte
Dim Timer_count_total As Const 20

Goto Inicio

On Timer0 Timer0interrupt

Sub Led(b As Byte)
    If B = 1 Then
       P0 = P0 And &HFE
       Timer_count_parcial = 0
       Start Timer0
    Else
       P0 = P0 Or &H01;
    End If
End Sub

Sub Spireadwrite(b As Byte)
   Exif = Exif And &HDF
   Spi_data = B
   Status = Exif And &H20
   While Status = 0
         Status = Exif And &H20
   Wend
   R = Spi_data
End Sub

Sub Delay100us(b As Byte)
   While B <> 0
      For I = 0 To 35 Step 1
      Next I
      B = B - 1
   Wend
End Sub

Sub Transmitpacket(b As Byte)
   Ce = 1
   Delay100us 0
   For I = 1 To Addr_count Step 1
       U = Addr_index + I
       T = Lookup(u , Rconf)
       Spireadwrite T
   Next I
   Spireadwrite B
   Ce = 0
   Delay100us 3
End Sub

Sub Transmitter
    Cs = 1
    Delay100us 0
    T = Lookup(0 , Tconf)
    For D = 1 To T Step 1
        U = Lookup(d , Tconf)
        Spireadwrite U
    Next D
    Cs = 0
    C = 0
    While 1 = 1
             Transmitpacket C
             C = C + 1
    Wend
End Sub

Sub Receivepacket
    Ce = 1
    While Dr1 = 0
    Wend
    Spireadwrite 0
    G = R
    Ce = 0
    R = G
End Sub

Sub Receiver
    Cs = 1
    Delay100us 0
    T = Lookup(0 , Rconf)
    For E = 1 To T Step 1
        U = Lookup(e , Rconf)
        Spireadwrite U
    Next E
    Cs = 0
    While 1 = 1
             Receivepacket
             F = R
             Led 1
    Wend
End Sub

Sub Inittimer
    Timer_count_parcial = 0
    Stop Timer0
    Ckcon = Ckcon Or &H08
    Tf0 = 0
    Enable Timer0
End Sub

Timer0interrupt:
    Tf0 = 0
    Load Timer0 , &HF060
    Timer_count_parcial = Timer_count_parcial + 1
    If Timer_count_parcial = Timer_count_total Then
       P0 = P0 Or &H01
       Stop Timer0
    End If
    Return

Sub Init
   P0_dir = &H20
   P0 = &H89
   Spiclk = 1
   Spi_ctrl = &H02
   Pwr_up = 1
   Delay100us 30
   Inittimer
   Start Timer0
   Enable Interrupts
End Sub

Inicio:
   Init
   Status = P0 And &H20
   If Status = &H20 Then
      Receiver
   Else
      Transmitter
   End If

Rconf:
Data 15 , &H08 , &H08 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H12 , &H34 , &H56 , &H78 , &H81 , &H6F , &H05
Tconf:
Data 15 , &H08 , &H08 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H12 , &H34 , &H56 , &H78 , &H81 , &H6F , &H04


Código: Selecionar todos
 Cy Alias Psw.7
 Ac Alias Psw.6
 F0 Alias Psw.5
 Rs1 Alias Psw.4
 Rs0 Alias Psw.3
 Ov Alias Psw.2
 F1 Alias Psw.1
 P Alias Psw.0

 Tf1 Alias Tcon.7
 Tr1 Alias Tcon.6
 Tf0 Alias Tcon.5
 Tr0 Alias Tcon.4
 Ie1 Alias Tcon.3
 It1 Alias Tcon.2
 Ie0 Alias Tcon.1
 It0 Alias Tcon.0

 Ea Alias Ie.7
 Et2 Alias Ie.5
 Es Alias Ie.4
 Et1 Alias Ie.3
 Ex1 Alias Ie.2
 Et0 Alias Ie.1
 Ex0 Alias Ie.0

 Pt2 Alias Ip.5
 Ps Alias Ip.4
 Pt1 Alias Ip.3
 Px1 Alias Ip.2
 Pt0 Alias Ip.1
 Px0 Alias Ip.0

 T1 Alias P0.6
 T0 Alias P0.5
 Int1 Alias P0.4
 Int0 Alias P0.3


 T2 Alias P1.0


 Sm0 Alias Scon.7
 Sm1 Alias Scon.6
 Sm2 Alias Scon.5
 Ren Alias Scon.4
 Tb8 Alias Scon.3
 Rb8 Alias Scon.2
 Ti Alias Scon.1
 Ri Alias Scon.0


 Tf2 Alias T2con.7
 Exf2 Alias T2con.6
 Rclk Alias T2con.5
 Tclk Alias T2con.4
 Exen2 Alias T2con.3
 Tr2 Alias T2con.2
 C_t2 Alias T2con.1
 Cp_rl2 Alias T2con.0


 Smod1 Alias Eicon.7
 Wdti Alias Eicon.3


 Ewdi Alias Eie.4
 Ex5 Alias Eie.3
 Ex4 Alias Eie.2
 Ex3 Alias Eie.1
 Ex2 Alias Eie.0


 Pwdi Alias Eip.4
 Px5 Alias Eip.3
 Px4 Alias Eip.2
 Px3 Alias Eip.1
 Px2 Alias Eip.0


 Pwr_up Alias Radio.7
 Dr2 Alias Radio.6
 Ce Alias Radio.6
 Clk2 Alias Radio.5
 Dout2 Alias Radio.4
 Cs Alias Radio.3
 Dr1 Alias Radio.2
 Clk1 Alias Radio.1
 Data Alias Radio.0
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x