📄 nrf2401.h
字号:
/*
Arduino based NRF2401 Header File
Created by Sam Berro -- samberro@gmail.com
*/
#ifndef NRF2401_H
#define NRF2401_H
#include "WConstants.h"
#ifdef __cplusplus
extern "C" {
#endif
#define RX true
#define TX false
#define kbps240 false
#define kbps1000 true
#define SHOCKBURST true
#define DIRECT false
typedef struct {
uint8_t CE;
uint8_t CS;
uint8_t DR1;
uint8_t CLK;
uint8_t DATA;
} nrf2401_pins_t;
extern nrf2401_pins_t;
/* ---- nrf2401_config_t struct was adopted from Timothy Willman's implementation ---- */
typedef struct {
uint8_t data2w;
uint8_t data1w;
uint8_t addr2[5];
uint8_t addr1[5];
uint8_t addrw_crc; /* addr_w:6 crc_l:1 crc_en:1 (hi-lo) */
uint8_t misc; /* rx2_en:1 cm:1 rfdr_sb:1 xo_f:3 rf_pwr:2 (hi-lo) */
uint8_t rf_ch_rxen; /* rf_ch:7 rxen:1 (hi-lo) */
} nrf2401_config_t;
extern nrf2401_config_t nrf2401_config;
extern nrf2401_pins_t nrf2401_pins;
/*--------- MAIN FUNCTIONS: Call these functions ----------*/
void nrf2401_Init();
boolean nrf2401_available();
void nrf2401_getPacket(uint8_t*);
void nrf2401_sendPacket(const uint8_t*, const uint8_t*);
boolean nrf2401_getOpMode();
void nrf2401_setOpMode(boolean);
/* ---------- Functions to set the config word. Need to call nrf2401_Init for changes to take effect -------*/
void nrf2401_setRX(boolean);
void nrf2401_setChnl(uint8_t);
void nrf2401_setPow(uint8_t);
void nrf2401_setFreq(uint8_t);
void nrf2401_setDRate(boolean);
void nrf2401_setCM(boolean);
void nrf2401_setRX2EN(boolean);
void nrf2401_setCRCEN(boolean);
void nrf2401_setCRC16(boolean);
void nrf2401_setADDRW(uint8_t);
void nrf2401_setADDR1(const uint8_t*);
void nrf2401_setADDR2(const uint8_t*);
void nrf2401_setData1W(uint8_t);
void nrf2401_setData2W(uint8_t);
/* ------ Helper Functions -------*/
void nrf2401_toggleByte(const uint8_t);
#ifdef __cplusplus
};
#endif
#endif /* #ifndef NRF2401_H ... */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -