nRF_24 module library for MBED
Dependents: IeTI_MOD24_nrf_emit IeTI_MOD24 Arts_DMX512_carteV3_MIDI_nRF IeTI_nRF24
MOD24_NRF.h@0:87e6628220a6, 2021-09-16 (annotated)
- Committer:
- villemejane
- Date:
- Thu Sep 16 14:08:31 2021 +0000
- Revision:
- 0:87e6628220a6
nRF_24 module library for MBED
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
villemejane | 0:87e6628220a6 | 1 | /****************************************************************************/ |
villemejane | 0:87e6628220a6 | 2 | /* Test MOD-24LR / nrf24L01 */ |
villemejane | 0:87e6628220a6 | 3 | /****************************************************************************/ |
villemejane | 0:87e6628220a6 | 4 | /* LEnsE / Julien VILLEMEJANE / Institut d'Optique Graduate School */ |
villemejane | 0:87e6628220a6 | 5 | /****************************************************************************/ |
villemejane | 0:87e6628220a6 | 6 | /* Bibliothèque */ |
villemejane | 0:87e6628220a6 | 7 | /****************************************************************************/ |
villemejane | 0:87e6628220a6 | 8 | /* Test réalisé sur Nucléo-F411RE */ |
villemejane | 0:87e6628220a6 | 9 | /****************************************************************************/ |
villemejane | 0:87e6628220a6 | 10 | |
villemejane | 0:87e6628220a6 | 11 | #ifndef __MOD24NRF_H__ |
villemejane | 0:87e6628220a6 | 12 | #define __MOD24NRF_H__ |
villemejane | 0:87e6628220a6 | 13 | |
villemejane | 0:87e6628220a6 | 14 | /** |
villemejane | 0:87e6628220a6 | 15 | * Includes |
villemejane | 0:87e6628220a6 | 16 | */ |
villemejane | 0:87e6628220a6 | 17 | #include "mbed.h" |
villemejane | 0:87e6628220a6 | 18 | |
villemejane | 0:87e6628220a6 | 19 | /** |
villemejane | 0:87e6628220a6 | 20 | * Defines |
villemejane | 0:87e6628220a6 | 21 | */ |
villemejane | 0:87e6628220a6 | 22 | #define NRF24L01P_TX_PWR_ZERO_DB 0 |
villemejane | 0:87e6628220a6 | 23 | #define NRF24L01P_TX_PWR_MINUS_6_DB -6 |
villemejane | 0:87e6628220a6 | 24 | #define NRF24L01P_TX_PWR_MINUS_12_DB -12 |
villemejane | 0:87e6628220a6 | 25 | #define NRF24L01P_TX_PWR_MINUS_18_DB -18 |
villemejane | 0:87e6628220a6 | 26 | |
villemejane | 0:87e6628220a6 | 27 | #define NRF24L01P_DATARATE_250_KBPS 250 |
villemejane | 0:87e6628220a6 | 28 | #define NRF24L01P_DATARATE_1_MBPS 1000 |
villemejane | 0:87e6628220a6 | 29 | #define NRF24L01P_DATARATE_2_MBPS 2000 |
villemejane | 0:87e6628220a6 | 30 | |
villemejane | 0:87e6628220a6 | 31 | #define NRF24L01P_CRC_NONE 0 |
villemejane | 0:87e6628220a6 | 32 | #define NRF24L01P_CRC_8_BIT 8 |
villemejane | 0:87e6628220a6 | 33 | #define NRF24L01P_CRC_16_BIT 16 |
villemejane | 0:87e6628220a6 | 34 | |
villemejane | 0:87e6628220a6 | 35 | #define NRF24L01P_MIN_RF_FREQUENCY 2400 |
villemejane | 0:87e6628220a6 | 36 | #define NRF24L01P_MAX_RF_FREQUENCY 2525 |
villemejane | 0:87e6628220a6 | 37 | |
villemejane | 0:87e6628220a6 | 38 | #define NRF24L01P_PIPE_P0 0 |
villemejane | 0:87e6628220a6 | 39 | #define NRF24L01P_PIPE_P1 1 |
villemejane | 0:87e6628220a6 | 40 | #define NRF24L01P_PIPE_P2 2 |
villemejane | 0:87e6628220a6 | 41 | #define NRF24L01P_PIPE_P3 3 |
villemejane | 0:87e6628220a6 | 42 | #define NRF24L01P_PIPE_P4 4 |
villemejane | 0:87e6628220a6 | 43 | #define NRF24L01P_PIPE_P5 5 |
villemejane | 0:87e6628220a6 | 44 | |
villemejane | 0:87e6628220a6 | 45 | /** |
villemejane | 0:87e6628220a6 | 46 | * Default setup for the nRF24L01+, based on the Sparkfun "Nordic Serial Interface Board" |
villemejane | 0:87e6628220a6 | 47 | * for evaluation (http://www.sparkfun.com/products/9019) |
villemejane | 0:87e6628220a6 | 48 | */ |
villemejane | 0:87e6628220a6 | 49 | #define DEFAULT_NRF24L01P_ADDRESS ((unsigned long long) 0xE7E7E7E7E7 ) |
villemejane | 0:87e6628220a6 | 50 | #define DEFAULT_NRF24L01P_ADDRESS_WIDTH 5 |
villemejane | 0:87e6628220a6 | 51 | #define DEFAULT_NRF24L01P_CRC NRF24L01P_CRC_8_BIT |
villemejane | 0:87e6628220a6 | 52 | #define DEFAULT_NRF24L01P_RF_FREQUENCY (NRF24L01P_MIN_RF_FREQUENCY + 2) |
villemejane | 0:87e6628220a6 | 53 | #define DEFAULT_NRF24L01P_DATARATE NRF24L01P_DATARATE_1_MBPS |
villemejane | 0:87e6628220a6 | 54 | #define DEFAULT_NRF24L01P_TX_PWR NRF24L01P_TX_PWR_ZERO_DB |
villemejane | 0:87e6628220a6 | 55 | #define DEFAULT_NRF24L01P_TRANSFER_SIZE 4 |
villemejane | 0:87e6628220a6 | 56 | |
villemejane | 0:87e6628220a6 | 57 | /** |
villemejane | 0:87e6628220a6 | 58 | * nRF24L01+ Single Chip 2.4GHz Transceiver from Nordic Semiconductor. |
villemejane | 0:87e6628220a6 | 59 | */ |
villemejane | 0:87e6628220a6 | 60 | class nRF24L01P { |
villemejane | 0:87e6628220a6 | 61 | |
villemejane | 0:87e6628220a6 | 62 | public: |
villemejane | 0:87e6628220a6 | 63 | |
villemejane | 0:87e6628220a6 | 64 | /** |
villemejane | 0:87e6628220a6 | 65 | * Constructor. |
villemejane | 0:87e6628220a6 | 66 | * |
villemejane | 0:87e6628220a6 | 67 | * @param mosi mbed pin to use for MOSI line of SPI interface. |
villemejane | 0:87e6628220a6 | 68 | * @param miso mbed pin to use for MISO line of SPI interface. |
villemejane | 0:87e6628220a6 | 69 | * @param sck mbed pin to use for SCK line of SPI interface. |
villemejane | 0:87e6628220a6 | 70 | * @param csn mbed pin to use for not chip select line of SPI interface. |
villemejane | 0:87e6628220a6 | 71 | * @param ce mbed pin to use for the chip enable line. |
villemejane | 0:87e6628220a6 | 72 | * @param irq mbed pin to use for the interrupt request line. |
villemejane | 0:87e6628220a6 | 73 | */ |
villemejane | 0:87e6628220a6 | 74 | nRF24L01P(PinName mosi, PinName miso, PinName sck, PinName csn, PinName ce, PinName irq = NC); |
villemejane | 0:87e6628220a6 | 75 | |
villemejane | 0:87e6628220a6 | 76 | /** |
villemejane | 0:87e6628220a6 | 77 | * Set the RF frequency. |
villemejane | 0:87e6628220a6 | 78 | * |
villemejane | 0:87e6628220a6 | 79 | * @param frequency the frequency of RF transmission in MHz (2400..2525). |
villemejane | 0:87e6628220a6 | 80 | */ |
villemejane | 0:87e6628220a6 | 81 | void setRfFrequency(int frequency = DEFAULT_NRF24L01P_RF_FREQUENCY); |
villemejane | 0:87e6628220a6 | 82 | |
villemejane | 0:87e6628220a6 | 83 | /** |
villemejane | 0:87e6628220a6 | 84 | * Get the RF frequency. |
villemejane | 0:87e6628220a6 | 85 | * |
villemejane | 0:87e6628220a6 | 86 | * @return the frequency of RF transmission in MHz (2400..2525). |
villemejane | 0:87e6628220a6 | 87 | */ |
villemejane | 0:87e6628220a6 | 88 | int getRfFrequency(void); |
villemejane | 0:87e6628220a6 | 89 | |
villemejane | 0:87e6628220a6 | 90 | /** |
villemejane | 0:87e6628220a6 | 91 | * Set the RF output power. |
villemejane | 0:87e6628220a6 | 92 | * |
villemejane | 0:87e6628220a6 | 93 | * @param power the RF output power in dBm (0, -6, -12 or -18). |
villemejane | 0:87e6628220a6 | 94 | */ |
villemejane | 0:87e6628220a6 | 95 | void setRfOutputPower(int power = DEFAULT_NRF24L01P_TX_PWR); |
villemejane | 0:87e6628220a6 | 96 | |
villemejane | 0:87e6628220a6 | 97 | /** |
villemejane | 0:87e6628220a6 | 98 | * Get the RF output power. |
villemejane | 0:87e6628220a6 | 99 | * |
villemejane | 0:87e6628220a6 | 100 | * @return the RF output power in dBm (0, -6, -12 or -18). |
villemejane | 0:87e6628220a6 | 101 | */ |
villemejane | 0:87e6628220a6 | 102 | int getRfOutputPower(void); |
villemejane | 0:87e6628220a6 | 103 | |
villemejane | 0:87e6628220a6 | 104 | /** |
villemejane | 0:87e6628220a6 | 105 | * Set the Air data rate. |
villemejane | 0:87e6628220a6 | 106 | * |
villemejane | 0:87e6628220a6 | 107 | * @param rate the air data rate in kbps (250, 1M or 2M). |
villemejane | 0:87e6628220a6 | 108 | */ |
villemejane | 0:87e6628220a6 | 109 | void setAirDataRate(int rate = DEFAULT_NRF24L01P_DATARATE); |
villemejane | 0:87e6628220a6 | 110 | |
villemejane | 0:87e6628220a6 | 111 | /** |
villemejane | 0:87e6628220a6 | 112 | * Get the Air data rate. |
villemejane | 0:87e6628220a6 | 113 | * |
villemejane | 0:87e6628220a6 | 114 | * @return the air data rate in kbps (250, 1M or 2M). |
villemejane | 0:87e6628220a6 | 115 | */ |
villemejane | 0:87e6628220a6 | 116 | int getAirDataRate(void); |
villemejane | 0:87e6628220a6 | 117 | |
villemejane | 0:87e6628220a6 | 118 | /** |
villemejane | 0:87e6628220a6 | 119 | * Set the CRC width. |
villemejane | 0:87e6628220a6 | 120 | * |
villemejane | 0:87e6628220a6 | 121 | * @param width the number of bits for the CRC (0, 8 or 16). |
villemejane | 0:87e6628220a6 | 122 | */ |
villemejane | 0:87e6628220a6 | 123 | void setCrcWidth(int width = DEFAULT_NRF24L01P_CRC); |
villemejane | 0:87e6628220a6 | 124 | |
villemejane | 0:87e6628220a6 | 125 | /** |
villemejane | 0:87e6628220a6 | 126 | * Get the CRC width. |
villemejane | 0:87e6628220a6 | 127 | * |
villemejane | 0:87e6628220a6 | 128 | * @return the number of bits for the CRC (0, 8 or 16). |
villemejane | 0:87e6628220a6 | 129 | */ |
villemejane | 0:87e6628220a6 | 130 | int getCrcWidth(void); |
villemejane | 0:87e6628220a6 | 131 | |
villemejane | 0:87e6628220a6 | 132 | /** |
villemejane | 0:87e6628220a6 | 133 | * Set the Receive address. |
villemejane | 0:87e6628220a6 | 134 | * |
villemejane | 0:87e6628220a6 | 135 | * @param address address associated with the particular pipe |
villemejane | 0:87e6628220a6 | 136 | * @param width width of the address in bytes (3..5) |
villemejane | 0:87e6628220a6 | 137 | * @param pipe pipe to associate the address with (0..5, default 0) |
villemejane | 0:87e6628220a6 | 138 | * |
villemejane | 0:87e6628220a6 | 139 | * Note that Pipes 0 & 1 have 3, 4 or 5 byte addresses, |
villemejane | 0:87e6628220a6 | 140 | * while Pipes 2..5 only use the lowest byte (bits 7..0) of the |
villemejane | 0:87e6628220a6 | 141 | * address provided here, and use 2, 3 or 4 bytes from Pipe 1's address. |
villemejane | 0:87e6628220a6 | 142 | * The width parameter is ignored for Pipes 2..5. |
villemejane | 0:87e6628220a6 | 143 | */ |
villemejane | 0:87e6628220a6 | 144 | void setRxAddress(unsigned long long address = DEFAULT_NRF24L01P_ADDRESS, int width = DEFAULT_NRF24L01P_ADDRESS_WIDTH, int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 145 | |
villemejane | 0:87e6628220a6 | 146 | void setRxAddress(unsigned long msb_address, unsigned long lsb_address, int width, int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 147 | |
villemejane | 0:87e6628220a6 | 148 | /** |
villemejane | 0:87e6628220a6 | 149 | * Set the Transmit address. |
villemejane | 0:87e6628220a6 | 150 | * |
villemejane | 0:87e6628220a6 | 151 | * @param address address for transmission |
villemejane | 0:87e6628220a6 | 152 | * @param width width of the address in bytes (3..5) |
villemejane | 0:87e6628220a6 | 153 | * |
villemejane | 0:87e6628220a6 | 154 | * Note that the address width is shared with the Receive pipes, |
villemejane | 0:87e6628220a6 | 155 | * so a change to that address width affect transmissions. |
villemejane | 0:87e6628220a6 | 156 | */ |
villemejane | 0:87e6628220a6 | 157 | void setTxAddress(unsigned long long address = DEFAULT_NRF24L01P_ADDRESS, int width = DEFAULT_NRF24L01P_ADDRESS_WIDTH); |
villemejane | 0:87e6628220a6 | 158 | |
villemejane | 0:87e6628220a6 | 159 | void setTxAddress(unsigned long msb_address, unsigned long lsb_address, int width); |
villemejane | 0:87e6628220a6 | 160 | |
villemejane | 0:87e6628220a6 | 161 | /** |
villemejane | 0:87e6628220a6 | 162 | * Get the Receive address. |
villemejane | 0:87e6628220a6 | 163 | * |
villemejane | 0:87e6628220a6 | 164 | * @param pipe pipe to get the address from (0..5, default 0) |
villemejane | 0:87e6628220a6 | 165 | * @return the address associated with the particular pipe |
villemejane | 0:87e6628220a6 | 166 | */ |
villemejane | 0:87e6628220a6 | 167 | unsigned long long getRxAddress(int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 168 | |
villemejane | 0:87e6628220a6 | 169 | /** |
villemejane | 0:87e6628220a6 | 170 | * Get the Transmit address. |
villemejane | 0:87e6628220a6 | 171 | * |
villemejane | 0:87e6628220a6 | 172 | * @return address address for transmission |
villemejane | 0:87e6628220a6 | 173 | */ |
villemejane | 0:87e6628220a6 | 174 | unsigned long long getTxAddress(void); |
villemejane | 0:87e6628220a6 | 175 | |
villemejane | 0:87e6628220a6 | 176 | /** |
villemejane | 0:87e6628220a6 | 177 | * Set the transfer size. |
villemejane | 0:87e6628220a6 | 178 | * |
villemejane | 0:87e6628220a6 | 179 | * @param size the size of the transfer, in bytes (1..32) |
villemejane | 0:87e6628220a6 | 180 | * @param pipe pipe for the transfer (0..5, default 0) |
villemejane | 0:87e6628220a6 | 181 | */ |
villemejane | 0:87e6628220a6 | 182 | void setTransferSize(int size = DEFAULT_NRF24L01P_TRANSFER_SIZE, int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 183 | |
villemejane | 0:87e6628220a6 | 184 | /** |
villemejane | 0:87e6628220a6 | 185 | * Get the transfer size. |
villemejane | 0:87e6628220a6 | 186 | * |
villemejane | 0:87e6628220a6 | 187 | * @return the size of the transfer, in bytes (1..32). |
villemejane | 0:87e6628220a6 | 188 | */ |
villemejane | 0:87e6628220a6 | 189 | int getTransferSize(int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 190 | |
villemejane | 0:87e6628220a6 | 191 | |
villemejane | 0:87e6628220a6 | 192 | /** |
villemejane | 0:87e6628220a6 | 193 | * Get the RPD (Received Power Detector) state. |
villemejane | 0:87e6628220a6 | 194 | * |
villemejane | 0:87e6628220a6 | 195 | * @return true if the received power exceeded -64dBm |
villemejane | 0:87e6628220a6 | 196 | */ |
villemejane | 0:87e6628220a6 | 197 | bool getRPD(void); |
villemejane | 0:87e6628220a6 | 198 | |
villemejane | 0:87e6628220a6 | 199 | /** |
villemejane | 0:87e6628220a6 | 200 | * Put the nRF24L01+ into Receive mode |
villemejane | 0:87e6628220a6 | 201 | */ |
villemejane | 0:87e6628220a6 | 202 | void setReceiveMode(void); |
villemejane | 0:87e6628220a6 | 203 | |
villemejane | 0:87e6628220a6 | 204 | /** |
villemejane | 0:87e6628220a6 | 205 | * Put the nRF24L01+ into Transmit mode |
villemejane | 0:87e6628220a6 | 206 | */ |
villemejane | 0:87e6628220a6 | 207 | void setTransmitMode(void); |
villemejane | 0:87e6628220a6 | 208 | |
villemejane | 0:87e6628220a6 | 209 | /** |
villemejane | 0:87e6628220a6 | 210 | * Power up the nRF24L01+ into Standby mode |
villemejane | 0:87e6628220a6 | 211 | */ |
villemejane | 0:87e6628220a6 | 212 | void powerUp(void); |
villemejane | 0:87e6628220a6 | 213 | |
villemejane | 0:87e6628220a6 | 214 | /** |
villemejane | 0:87e6628220a6 | 215 | * Power down the nRF24L01+ into Power Down mode |
villemejane | 0:87e6628220a6 | 216 | */ |
villemejane | 0:87e6628220a6 | 217 | void powerDown(void); |
villemejane | 0:87e6628220a6 | 218 | |
villemejane | 0:87e6628220a6 | 219 | /** |
villemejane | 0:87e6628220a6 | 220 | * Enable the nRF24L01+ to Receive or Transmit (using the CE pin) |
villemejane | 0:87e6628220a6 | 221 | */ |
villemejane | 0:87e6628220a6 | 222 | void enable(void); |
villemejane | 0:87e6628220a6 | 223 | |
villemejane | 0:87e6628220a6 | 224 | /** |
villemejane | 0:87e6628220a6 | 225 | * Disable the nRF24L01+ to Receive or Transmit (using the CE pin) |
villemejane | 0:87e6628220a6 | 226 | */ |
villemejane | 0:87e6628220a6 | 227 | void disable(void); |
villemejane | 0:87e6628220a6 | 228 | |
villemejane | 0:87e6628220a6 | 229 | /** |
villemejane | 0:87e6628220a6 | 230 | * Transmit data |
villemejane | 0:87e6628220a6 | 231 | * |
villemejane | 0:87e6628220a6 | 232 | * @param pipe is ignored (included for consistency with file write routine) |
villemejane | 0:87e6628220a6 | 233 | * @param data pointer to an array of bytes to write |
villemejane | 0:87e6628220a6 | 234 | * @param count the number of bytes to send (1..32) |
villemejane | 0:87e6628220a6 | 235 | * @return the number of bytes actually written, or -1 for an error |
villemejane | 0:87e6628220a6 | 236 | */ |
villemejane | 0:87e6628220a6 | 237 | int write(int pipe, char *data, int count); |
villemejane | 0:87e6628220a6 | 238 | |
villemejane | 0:87e6628220a6 | 239 | /** |
villemejane | 0:87e6628220a6 | 240 | * Receive data |
villemejane | 0:87e6628220a6 | 241 | * |
villemejane | 0:87e6628220a6 | 242 | * @param pipe the receive pipe to get data from |
villemejane | 0:87e6628220a6 | 243 | * @param data pointer to an array of bytes to store the received data |
villemejane | 0:87e6628220a6 | 244 | * @param count the number of bytes to receive (1..32) |
villemejane | 0:87e6628220a6 | 245 | * @return the number of bytes actually received, 0 if none are received, or -1 for an error |
villemejane | 0:87e6628220a6 | 246 | */ |
villemejane | 0:87e6628220a6 | 247 | int read(int pipe, char *data, int count); |
villemejane | 0:87e6628220a6 | 248 | |
villemejane | 0:87e6628220a6 | 249 | /** |
villemejane | 0:87e6628220a6 | 250 | * Determine if there is data available to read |
villemejane | 0:87e6628220a6 | 251 | * |
villemejane | 0:87e6628220a6 | 252 | * @param pipe the receive pipe to check for data |
villemejane | 0:87e6628220a6 | 253 | * @return true if the is data waiting in the given pipe |
villemejane | 0:87e6628220a6 | 254 | */ |
villemejane | 0:87e6628220a6 | 255 | bool readable(int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 256 | |
villemejane | 0:87e6628220a6 | 257 | /** |
villemejane | 0:87e6628220a6 | 258 | * Disable all receive pipes |
villemejane | 0:87e6628220a6 | 259 | * |
villemejane | 0:87e6628220a6 | 260 | * Note: receive pipes are enabled when their address is set. |
villemejane | 0:87e6628220a6 | 261 | */ |
villemejane | 0:87e6628220a6 | 262 | void disableAllRxPipes(void); |
villemejane | 0:87e6628220a6 | 263 | |
villemejane | 0:87e6628220a6 | 264 | /** |
villemejane | 0:87e6628220a6 | 265 | * Disable AutoAcknowledge function |
villemejane | 0:87e6628220a6 | 266 | */ |
villemejane | 0:87e6628220a6 | 267 | void disableAutoAcknowledge(void); |
villemejane | 0:87e6628220a6 | 268 | |
villemejane | 0:87e6628220a6 | 269 | /** |
villemejane | 0:87e6628220a6 | 270 | * Enable AutoAcknowledge function |
villemejane | 0:87e6628220a6 | 271 | * |
villemejane | 0:87e6628220a6 | 272 | * @param pipe the receive pipe |
villemejane | 0:87e6628220a6 | 273 | */ |
villemejane | 0:87e6628220a6 | 274 | void enableAutoAcknowledge(int pipe = NRF24L01P_PIPE_P0); |
villemejane | 0:87e6628220a6 | 275 | |
villemejane | 0:87e6628220a6 | 276 | /** |
villemejane | 0:87e6628220a6 | 277 | * Disable AutoRetransmit function |
villemejane | 0:87e6628220a6 | 278 | */ |
villemejane | 0:87e6628220a6 | 279 | void disableAutoRetransmit(void); |
villemejane | 0:87e6628220a6 | 280 | |
villemejane | 0:87e6628220a6 | 281 | /** |
villemejane | 0:87e6628220a6 | 282 | * Enable AutoRetransmit function |
villemejane | 0:87e6628220a6 | 283 | * |
villemejane | 0:87e6628220a6 | 284 | * @param delay the delay between restransmits, in uS (250uS..4000uS) |
villemejane | 0:87e6628220a6 | 285 | * @param count number of retransmits before generating an error (1..15) |
villemejane | 0:87e6628220a6 | 286 | */ |
villemejane | 0:87e6628220a6 | 287 | void enableAutoRetransmit(int delay, int count); |
villemejane | 0:87e6628220a6 | 288 | |
villemejane | 0:87e6628220a6 | 289 | private: |
villemejane | 0:87e6628220a6 | 290 | |
villemejane | 0:87e6628220a6 | 291 | /** |
villemejane | 0:87e6628220a6 | 292 | * Get the contents of an addressable register. |
villemejane | 0:87e6628220a6 | 293 | * |
villemejane | 0:87e6628220a6 | 294 | * @param regAddress address of the register |
villemejane | 0:87e6628220a6 | 295 | * @return the contents of the register |
villemejane | 0:87e6628220a6 | 296 | */ |
villemejane | 0:87e6628220a6 | 297 | int getRegister(int regAddress); |
villemejane | 0:87e6628220a6 | 298 | |
villemejane | 0:87e6628220a6 | 299 | /** |
villemejane | 0:87e6628220a6 | 300 | * Set the contents of an addressable register. |
villemejane | 0:87e6628220a6 | 301 | * |
villemejane | 0:87e6628220a6 | 302 | * @param regAddress address of the register |
villemejane | 0:87e6628220a6 | 303 | * @param regData data to write to the register |
villemejane | 0:87e6628220a6 | 304 | */ |
villemejane | 0:87e6628220a6 | 305 | void setRegister(int regAddress, int regData); |
villemejane | 0:87e6628220a6 | 306 | |
villemejane | 0:87e6628220a6 | 307 | /** |
villemejane | 0:87e6628220a6 | 308 | * Get the contents of the status register. |
villemejane | 0:87e6628220a6 | 309 | * |
villemejane | 0:87e6628220a6 | 310 | * @return the contents of the status register |
villemejane | 0:87e6628220a6 | 311 | */ |
villemejane | 0:87e6628220a6 | 312 | int getStatusRegister(void); |
villemejane | 0:87e6628220a6 | 313 | |
villemejane | 0:87e6628220a6 | 314 | SPI spi_; |
villemejane | 0:87e6628220a6 | 315 | DigitalOut nCS_; |
villemejane | 0:87e6628220a6 | 316 | DigitalOut ce_; |
villemejane | 0:87e6628220a6 | 317 | InterruptIn nIRQ_; |
villemejane | 0:87e6628220a6 | 318 | |
villemejane | 0:87e6628220a6 | 319 | int mode; |
villemejane | 0:87e6628220a6 | 320 | |
villemejane | 0:87e6628220a6 | 321 | }; |
villemejane | 0:87e6628220a6 | 322 | |
villemejane | 0:87e6628220a6 | 323 | #endif /* __MOD24NRF_H__ */ |