⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nrf24l01.h

📁 AVR Mega88 + nRF24L01 wireless 2.4GHz >> Driver nRF24L01 >> AVRSTUDIO project
💻 H
字号:
#ifndef _NRF24L01_H_#define _NRF24L01_H_

//
//PIN MAP, Mega88+nRF24L01
//All pin connect direction, "No" pull-up , pull-Dow
//
//#define nRF24L01_MISO   PINB3 ---> DD_MOSI
//#define nRF24L01_MOSI   PINB4 ---> DD_MISO
//#define nRF24L01_SCK    PINB5 ---> DD_SCK 
//#define nRF24L01_IRQ    PIND5
//#define nRF24L01_CE     PIND6
//#define nRF24L01_CSN    PIND7


//*********** SPI Function *******************//

#define DDR_SPI     DDRB        // SPI PORT PIN
#define DD_SIGNAL   DDB0
#define DD_SS       DDB2        // SS  (SS)  pin(PB4)  // Not used for spi-16bit
#define DD_MOSI     DDB3        // MOSI(DI)  pin(PB5)
#define DD_MISO     DDB4        // MOSI(DI)  pin(PB5)
#define DD_SCK      DDB5        // SCK (CLK) pin(PB7)


#define nRF24L01_PORT   PORTD
#define nRF24L01_IRQ    PIND5
#define nRF24L01_CE     PIND6
#define nRF24L01_CSN    PIND7

//CONSTANTS
#define   NRF_NOP         0xff
#define   R_REGISTER      0x00
#define   W_REGISTER      0x01
#define   R_RX_PAYLOAD    0x61
#define   W_TX_PAYLOAD    0xA0
#define   FLUSH_TX        0xE1
#define   FLUSH_RX        0xE2
#define   REUSE_TX_PL     0xE3

#define   RX_ADDR_P0      0x0A
#define   RX_ADDR_P1      0x0B
#define   TX_ADDR         0x10
#define   RX_PW_P0        0x11
#define   RX_PW_P1        0x12
#define   FIFO_STATUS     0x17

#define   MAX_RT          0x10

#define   CONFIG_REG_ADDR 0x00
#define   STATUS_ADDR     0x07

#define   TX_FULL         0x01
#define   RX_DR           0x40
#define   TX_DS           0x20

#define   RX_TX_TIME      10000
#define   BUT_TIME        1000

#define   CSN_TIME      20
#define   CE_HIGH_TIME  700


/// Receive the packets with following address
volatile static unsigned char RX_ADDRESS_P0[5]  = {5,6,7,8,9};
/// Receive the packets with following address
volatile static unsigned char RX_ADDRESS_P1[5]  = {0,1,2,3,4};
/// Transmit packets with following address
volatile static unsigned char TX_ADDRESS[5]     = {5,6,7,8,9};
volatile static unsigned char ADDRESS[5];
volatile static unsigned char timerFlag=0; 

volatile static unsigned char payload;
volatile static unsigned char c;
volatile static unsigned char status_temp;
volatile static unsigned char status;


/*********** General Prototype *****************/

extern unsigned char SPI_SendByte(unsigned char DataIn);
extern void SPI_MasterInit(void);

extern void CSN_HIGH(void);
extern void CSN_LOW (void);
extern void CE_HIGH(void);
extern void CE_LOW(void);

extern void NRF_send (unsigned char dataIn);
extern void NRF_init (void);
extern unsigned char NRF_receive (unsigned char * dataIn);
extern void NRF_prepareForReceive (void);

extern unsigned char SPI_Send_command_with_ADDR (unsigned char cmd, unsigned char addr, unsigned char data_byte);
extern unsigned char SPI_Send_command_without_ADDR (unsigned char cmd, unsigned char data_byte);
extern unsigned char check_recieve_nrf24L01(void);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -