با سلام به همه دوستان
توی گشتو گذار توی نت هیچ منبعی رو پیدا نکردم که بتونن این ماژول رو با زبان بسکام راه اندازیش کنن
پس از دوستانی که تجربه کار با ماژول +nRF24L01 رو دارن در خواست میکنم تا به کمک هم بیایم
یه نمونه برنامه که خودم شخصا تستش نکردم
چون ماژولش رو فعلا ندارم
گیرنده:
فرستنده:
توی گشتو گذار توی نت هیچ منبعی رو پیدا نکردم که بتونن این ماژول رو با زبان بسکام راه اندازیش کنن
پس از دوستانی که تجربه کار با ماژول +nRF24L01 رو دارن در خواست میکنم تا به کمک هم بیایم

یه نمونه برنامه که خودم شخصا تستش نکردم
چون ماژولش رو فعلا ندارم
گیرنده:
کد:
$regfile = "m8def.dat" $crystal = 8000000 Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte) Declare Sub W_register(byval C_bytes As Byte) 'SPI (nRF24L01) Const Write_reg = &H20 Const Rd_rx_pload = &H61 'SPI (nRF24L01) Const Config_nrf = &H00 Const En_aa = &H01 Const En_rxaddr = &H02 Const Rf_ch = &H05 Const Rf_setup = &H06 Const Status = &H07 Const Rx_addr_p0 = &H0A Const Rx_pw_p0 = &H11 Const Fifo_status = &H17 Dim D_bytes(6) As Byte , B_bytes(5) As Byte Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1 Config Portb.1 = Output : Ce Alias Portb.1 'CE pin is output Config Portb.2 = Output : Ss Alias Portb.2 'SS pin is output Config Pinb.0 = Input : Irq Alias Pinb.0 'IRQ pin is input Spiinit Set Ce Waitms 10 Reset Ce Reset Ss Print "RX_device" Call R_register(status , 1) Reset Ce Gosub Setup_rx Waitms 2 Set Ce Do If Irq = 0 Then Reset Ce Call R_register(rd_rx_pload , 5) Print "Pload : " ; Hex(b_bytes(1)) ; Hex(b_bytes(2)) ; Hex(b_bytes(3)) ; Hex(b_bytes(4)) ; Hex(b_bytes(5)) D_bytes(1) = Write_reg + Status D_bytes(2) = &B01000000 Call W_register(2) Set Ce Waitms 2 End If Loop Sub W_register(byval C_bytes As Byte) Reset Ss Spiout D_bytes(1) , C_bytes Set Ss End Sub Sub R_register(byval Command As Byte , Byval C_bytes As Byte) As Byte Reset Ss Spiout Command , 1 Spiin B_bytes(1) , C_bytes Set Ss End Sub Setup_rx: D_bytes(1) = Write_reg + Rx_addr_p0 D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + En_aa D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + En_rxaddr D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + Rf_ch D_bytes(2) = 40 Call W_register(2) D_bytes(1) = Write_reg + Rx_pw_p0 D_bytes(2) = 5 Call W_register(2) D_bytes(1) = Write_reg + Rf_setup D_bytes(2) = &H0F Call W_register(2) D_bytes(1) = Write_reg + Config_nrf D_bytes(2) = &H0F Call W_register(2) Return
کد:
$regfile = "m8def.dat" $crystal = 8000000 Declare Sub W_register(byval C_bytes As Byte) 'SPI (nRF24L01) Const Write_reg = &H20 Const Wr_tx_pload = &HA0 Const Flush_tx = &HE1 'SPI (nRF24L01) ًهمèًٌٍû (àنًهٌà) Const Config_nrf = &H00 Const En_aa = &H01 Const En_rxaddr = &H02 Const Rf_ch = &H05 Const Rf_setup = &H06 Const Status = &H07 Const Rx_addr_p0 = &H0A Const Tx_addr = &H10 Dim D_bytes(6) As Byte , W As Byte Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1 Config Portb.1 = Output : Ce Alias Portb.1 'CE pin is output Config Portb.2 = Output : Ss Alias Portb.2 'SS pin is output Config Pinb.0 = Input : Irq Alias Pinb.0 'IRQ pin is input Config Portd.4 = Output : Red_led Alias Portd.4 Spiinit Do Incr W If W = 250 Then W = 0 End If Set Ce Waitms 10 Reset Ce Reset Ss Red_led = 1 D_bytes(1) = Flush_tx Call W_register(1) D_bytes(1) = Write_reg + Status D_bytes(2) = &B00110000 Call W_register(2) Gosub Setup_tx D_bytes(1) = Wr_tx_pload D_bytes(2) = &HAA D_bytes(3) = &HBB D_bytes(4) = &HCC D_bytes(5) = &H11 D_bytes(6) = W Call W_register(6) Waitms 2 Set Ce Waitms 1 Reset Ce Red_led = 0 Wait 1 Loop Sub W_register(byval C_bytes As Byte) Reset Ss Spiout D_bytes(1) , C_bytes Set Ss End Sub Setup_tx: D_bytes(1) = Write_reg + Tx_addr D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + Rx_addr_p0 D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + En_aa D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + En_rxaddr D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + Rf_ch D_bytes(2) = 40 Call W_register(2) D_bytes(1) = Write_reg + Rf_setup D_bytes(2) = &H0F Call W_register(2) D_bytes(1) = Write_reg + Config_nrf D_bytes(2) = &H0E Call W_register(2) Return

دیدگاه