RADIO nRF24L01

Fork of nRF24L01P by Pablo Rodriguez

Committer:
fytanlulu
Date:
Mon Jul 04 01:41:56 2016 +0000
Revision:
1:d6b43a63580a
Parent:
0:8d55f1f49a33
AD5254???nRF??????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pabloamr 0:8d55f1f49a33 1 /**
pabloamr 0:8d55f1f49a33 2 * @file nRF24L01P.h
pabloamr 0:8d55f1f49a33 3 *
pabloamr 0:8d55f1f49a33 4 * @author Owen Edwards
pabloamr 0:8d55f1f49a33 5 *
pabloamr 0:8d55f1f49a33 6 * @section LICENSE
pabloamr 0:8d55f1f49a33 7 *
pabloamr 0:8d55f1f49a33 8 * Copyright (c) 2010 Owen Edwards
pabloamr 0:8d55f1f49a33 9 *
pabloamr 0:8d55f1f49a33 10 * This program is free software: you can redistribute it and/or modify
pabloamr 0:8d55f1f49a33 11 * it under the terms of the GNU General Public License as published by
pabloamr 0:8d55f1f49a33 12 * the Free Software Foundation, either version 3 of the License, or
pabloamr 0:8d55f1f49a33 13 * (at your option) any later version.
pabloamr 0:8d55f1f49a33 14 *
pabloamr 0:8d55f1f49a33 15 * This program is distributed in the hope that it will be useful,
pabloamr 0:8d55f1f49a33 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
pabloamr 0:8d55f1f49a33 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
pabloamr 0:8d55f1f49a33 18 * GNU General Public License for more details.
pabloamr 0:8d55f1f49a33 19 *
pabloamr 0:8d55f1f49a33 20 * You should have received a copy of the GNU General Public License
pabloamr 0:8d55f1f49a33 21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
pabloamr 0:8d55f1f49a33 22 *
pabloamr 0:8d55f1f49a33 23 * The above copyright notice and this permission notice shall be included in
pabloamr 0:8d55f1f49a33 24 * all copies or substantial portions of the Software.
pabloamr 0:8d55f1f49a33 25 *
pabloamr 0:8d55f1f49a33 26 * @section DESCRIPTION
pabloamr 0:8d55f1f49a33 27 *
pabloamr 0:8d55f1f49a33 28 * nRF24L01+ Single Chip 2.4GHz Transceiver from Nordic Semiconductor.
pabloamr 0:8d55f1f49a33 29 *
pabloamr 0:8d55f1f49a33 30 * Datasheet:
pabloamr 0:8d55f1f49a33 31 *
pabloamr 0:8d55f1f49a33 32 * http://www.nordicsemi.no/files/Product/data_sheet/nRF24L01P_Product_Specification_1_0.pdf
pabloamr 0:8d55f1f49a33 33 */
pabloamr 0:8d55f1f49a33 34
pabloamr 0:8d55f1f49a33 35 #ifndef __NRF24L01P_H__
pabloamr 0:8d55f1f49a33 36 #define __NRF24L01P_H__
pabloamr 0:8d55f1f49a33 37
pabloamr 0:8d55f1f49a33 38 /**
pabloamr 0:8d55f1f49a33 39 * Includes
pabloamr 0:8d55f1f49a33 40 */
pabloamr 0:8d55f1f49a33 41 #include "mbed.h"
pabloamr 0:8d55f1f49a33 42
pabloamr 0:8d55f1f49a33 43 /**
pabloamr 0:8d55f1f49a33 44 * Defines
pabloamr 0:8d55f1f49a33 45 */
pabloamr 0:8d55f1f49a33 46 #define NRF24L01P_TX_PWR_ZERO_DB 0
pabloamr 0:8d55f1f49a33 47 #define NRF24L01P_TX_PWR_MINUS_6_DB -6
pabloamr 0:8d55f1f49a33 48 #define NRF24L01P_TX_PWR_MINUS_12_DB -12
pabloamr 0:8d55f1f49a33 49 #define NRF24L01P_TX_PWR_MINUS_18_DB -18
pabloamr 0:8d55f1f49a33 50
pabloamr 0:8d55f1f49a33 51 #define NRF24L01P_DATARATE_250_KBPS 250
pabloamr 0:8d55f1f49a33 52 #define NRF24L01P_DATARATE_1_MBPS 1000
pabloamr 0:8d55f1f49a33 53 #define NRF24L01P_DATARATE_2_MBPS 2000
pabloamr 0:8d55f1f49a33 54
pabloamr 0:8d55f1f49a33 55 #define NRF24L01P_CRC_NONE 0
pabloamr 0:8d55f1f49a33 56 #define NRF24L01P_CRC_8_BIT 8
pabloamr 0:8d55f1f49a33 57 #define NRF24L01P_CRC_16_BIT 16
pabloamr 0:8d55f1f49a33 58
pabloamr 0:8d55f1f49a33 59 #define NRF24L01P_MIN_RF_FREQUENCY 2400
pabloamr 0:8d55f1f49a33 60 #define NRF24L01P_MAX_RF_FREQUENCY 2525
pabloamr 0:8d55f1f49a33 61
pabloamr 0:8d55f1f49a33 62 #define NRF24L01P_PIPE_P0 0
pabloamr 0:8d55f1f49a33 63 #define NRF24L01P_PIPE_P1 1
pabloamr 0:8d55f1f49a33 64 #define NRF24L01P_PIPE_P2 2
pabloamr 0:8d55f1f49a33 65 #define NRF24L01P_PIPE_P3 3
pabloamr 0:8d55f1f49a33 66 #define NRF24L01P_PIPE_P4 4
pabloamr 0:8d55f1f49a33 67 #define NRF24L01P_PIPE_P5 5
pabloamr 0:8d55f1f49a33 68
pabloamr 0:8d55f1f49a33 69 /**
pabloamr 0:8d55f1f49a33 70 * Default setup for the nRF24L01+, based on the Sparkfun "Nordic Serial Interface Board"
pabloamr 0:8d55f1f49a33 71 * for evaluation (http://www.sparkfun.com/products/9019)
pabloamr 0:8d55f1f49a33 72 */
pabloamr 0:8d55f1f49a33 73 #define DEFAULT_NRF24L01P_ADDRESS ((unsigned long long) 0xE7E7E7E7EE )
pabloamr 0:8d55f1f49a33 74 #define DEFAULT_NRF24L01P_ADDRESS_WIDTH 5
pabloamr 0:8d55f1f49a33 75 #define DEFAULT_NRF24L01P_CRC NRF24L01P_CRC_16_BIT
pabloamr 0:8d55f1f49a33 76 #define DEFAULT_NRF24L01P_RF_FREQUENCY (NRF24L01P_MIN_RF_FREQUENCY + 2 )
pabloamr 0:8d55f1f49a33 77 #define DEFAULT_NRF24L01P_DATARATE NRF24L01P_DATARATE_1_MBPS
pabloamr 0:8d55f1f49a33 78 #define DEFAULT_NRF24L01P_TX_PWR NRF24L01P_TX_PWR_ZERO_DB
pabloamr 0:8d55f1f49a33 79 #define DEFAULT_NRF24L01P_TRANSFER_SIZE 28
pabloamr 0:8d55f1f49a33 80
pabloamr 0:8d55f1f49a33 81 /**
pabloamr 0:8d55f1f49a33 82 * nRF24L01+ Single Chip 2.4GHz Transceiver from Nordic Semiconductor.
pabloamr 0:8d55f1f49a33 83 */
pabloamr 0:8d55f1f49a33 84 class nRF24L01P {
pabloamr 0:8d55f1f49a33 85
pabloamr 0:8d55f1f49a33 86 public:
pabloamr 0:8d55f1f49a33 87
pabloamr 0:8d55f1f49a33 88 /**
pabloamr 0:8d55f1f49a33 89 * Constructor.
pabloamr 0:8d55f1f49a33 90 *
pabloamr 0:8d55f1f49a33 91 * @param mosi mbed pin to use for MOSI line of SPI interface.
pabloamr 0:8d55f1f49a33 92 * @param miso mbed pin to use for MISO line of SPI interface.
pabloamr 0:8d55f1f49a33 93 * @param sck mbed pin to use for SCK line of SPI interface.
pabloamr 0:8d55f1f49a33 94 * @param csn mbed pin to use for not chip select line of SPI interface.
pabloamr 0:8d55f1f49a33 95 * @param ce mbed pin to use for the chip enable line.
pabloamr 0:8d55f1f49a33 96 * @param irq mbed pin to use for the interrupt request line.
pabloamr 0:8d55f1f49a33 97 */
pabloamr 0:8d55f1f49a33 98 nRF24L01P(PinName mosi, PinName miso, PinName sck, PinName csn, PinName ce, PinName irq = NC);
pabloamr 0:8d55f1f49a33 99
pabloamr 0:8d55f1f49a33 100 /**
pabloamr 0:8d55f1f49a33 101 * Set the RF frequency.
pabloamr 0:8d55f1f49a33 102 *
pabloamr 0:8d55f1f49a33 103 * @param frequency the frequency of RF transmission in MHz (2400..2525).
pabloamr 0:8d55f1f49a33 104 */
pabloamr 0:8d55f1f49a33 105 void setRfFrequency(int frequency = DEFAULT_NRF24L01P_RF_FREQUENCY);
pabloamr 0:8d55f1f49a33 106
pabloamr 0:8d55f1f49a33 107 /**
pabloamr 0:8d55f1f49a33 108 * Get the RF frequency.
pabloamr 0:8d55f1f49a33 109 *
pabloamr 0:8d55f1f49a33 110 * @return the frequency of RF transmission in MHz (2400..2525).
pabloamr 0:8d55f1f49a33 111 */
pabloamr 0:8d55f1f49a33 112 int getRfFrequency(void);
pabloamr 0:8d55f1f49a33 113
pabloamr 0:8d55f1f49a33 114 /**
pabloamr 0:8d55f1f49a33 115 * Set the RF output power.
pabloamr 0:8d55f1f49a33 116 *
pabloamr 0:8d55f1f49a33 117 * @param power the RF output power in dBm (0, -6, -12 or -18).
pabloamr 0:8d55f1f49a33 118 */
pabloamr 0:8d55f1f49a33 119 void setRfOutputPower(int power = DEFAULT_NRF24L01P_TX_PWR);
pabloamr 0:8d55f1f49a33 120
pabloamr 0:8d55f1f49a33 121 /**
pabloamr 0:8d55f1f49a33 122 * Get the RF output power.
pabloamr 0:8d55f1f49a33 123 *
pabloamr 0:8d55f1f49a33 124 * @return the RF output power in dBm (0, -6, -12 or -18).
pabloamr 0:8d55f1f49a33 125 */
pabloamr 0:8d55f1f49a33 126 int getRfOutputPower(void);
pabloamr 0:8d55f1f49a33 127
pabloamr 0:8d55f1f49a33 128 /**
pabloamr 0:8d55f1f49a33 129 * Set the Air data rate.
pabloamr 0:8d55f1f49a33 130 *
pabloamr 0:8d55f1f49a33 131 * @param rate the air data rate in kbps (250, 1M or 2M).
pabloamr 0:8d55f1f49a33 132 */
pabloamr 0:8d55f1f49a33 133 void setAirDataRate(int rate = DEFAULT_NRF24L01P_DATARATE);
pabloamr 0:8d55f1f49a33 134
pabloamr 0:8d55f1f49a33 135 /**
pabloamr 0:8d55f1f49a33 136 * Get the Air data rate.
pabloamr 0:8d55f1f49a33 137 *
pabloamr 0:8d55f1f49a33 138 * @return the air data rate in kbps (250, 1M or 2M).
pabloamr 0:8d55f1f49a33 139 */
pabloamr 0:8d55f1f49a33 140 int getAirDataRate(void);
pabloamr 0:8d55f1f49a33 141
pabloamr 0:8d55f1f49a33 142 /**
pabloamr 0:8d55f1f49a33 143 * Set the CRC width.
pabloamr 0:8d55f1f49a33 144 *
pabloamr 0:8d55f1f49a33 145 * @param width the number of bits for the CRC (0, 8 or 16).
pabloamr 0:8d55f1f49a33 146 */
pabloamr 0:8d55f1f49a33 147 void setCrcWidth(int width = DEFAULT_NRF24L01P_CRC);
pabloamr 0:8d55f1f49a33 148
pabloamr 0:8d55f1f49a33 149 /**
pabloamr 0:8d55f1f49a33 150 * Get the CRC width.
pabloamr 0:8d55f1f49a33 151 *
pabloamr 0:8d55f1f49a33 152 * @return the number of bits for the CRC (0, 8 or 16).
pabloamr 0:8d55f1f49a33 153 */
pabloamr 0:8d55f1f49a33 154 int getCrcWidth(void);
pabloamr 0:8d55f1f49a33 155
pabloamr 0:8d55f1f49a33 156 /**
pabloamr 0:8d55f1f49a33 157 * Set the Receive address.
pabloamr 0:8d55f1f49a33 158 *
pabloamr 0:8d55f1f49a33 159 * @param address address associated with the particular pipe
pabloamr 0:8d55f1f49a33 160 * @param width width of the address in bytes (3..5)
pabloamr 0:8d55f1f49a33 161 * @param pipe pipe to associate the address with (0..5, default 0)
pabloamr 0:8d55f1f49a33 162 *
pabloamr 0:8d55f1f49a33 163 * Note that Pipes 0 & 1 have 3, 4 or 5 byte addresses,
pabloamr 0:8d55f1f49a33 164 * while Pipes 2..5 only use the lowest byte (bits 7..0) of the
pabloamr 0:8d55f1f49a33 165 * address provided here, and use 2, 3 or 4 bytes from Pipe 1's address.
pabloamr 0:8d55f1f49a33 166 * The width parameter is ignored for Pipes 2..5.
pabloamr 0:8d55f1f49a33 167 */
pabloamr 0:8d55f1f49a33 168 void setRxAddress(unsigned long long address = DEFAULT_NRF24L01P_ADDRESS, int width = DEFAULT_NRF24L01P_ADDRESS_WIDTH, int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 169
pabloamr 0:8d55f1f49a33 170 void setRxAddress(unsigned long msb_address, unsigned long lsb_address, int width, int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 171
pabloamr 0:8d55f1f49a33 172 /**
pabloamr 0:8d55f1f49a33 173 * Set the Transmit address.
pabloamr 0:8d55f1f49a33 174 *
pabloamr 0:8d55f1f49a33 175 * @param address address for transmission
pabloamr 0:8d55f1f49a33 176 * @param width width of the address in bytes (3..5)
pabloamr 0:8d55f1f49a33 177 *
pabloamr 0:8d55f1f49a33 178 * Note that the address width is shared with the Receive pipes,
pabloamr 0:8d55f1f49a33 179 * so a change to that address width affect transmissions.
pabloamr 0:8d55f1f49a33 180 */
fytanlulu 1:d6b43a63580a 181 void setTxAddress(unsigned long long address , int width );
pabloamr 0:8d55f1f49a33 182
pabloamr 0:8d55f1f49a33 183 void setTxAddress(unsigned long msb_address, unsigned long lsb_address, int width);
pabloamr 0:8d55f1f49a33 184
pabloamr 0:8d55f1f49a33 185 /**
pabloamr 0:8d55f1f49a33 186 * Get the Receive address.
pabloamr 0:8d55f1f49a33 187 *
pabloamr 0:8d55f1f49a33 188 * @param pipe pipe to get the address from (0..5, default 0)
pabloamr 0:8d55f1f49a33 189 * @return the address associated with the particular pipe
pabloamr 0:8d55f1f49a33 190 */
pabloamr 0:8d55f1f49a33 191 unsigned long long getRxAddress(int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 192
pabloamr 0:8d55f1f49a33 193 /**
pabloamr 0:8d55f1f49a33 194 * Get the Transmit address.
pabloamr 0:8d55f1f49a33 195 *
pabloamr 0:8d55f1f49a33 196 * @return address address for transmission
pabloamr 0:8d55f1f49a33 197 */
pabloamr 0:8d55f1f49a33 198 unsigned long long getTxAddress(void);
pabloamr 0:8d55f1f49a33 199
pabloamr 0:8d55f1f49a33 200 /**
pabloamr 0:8d55f1f49a33 201 * Set the transfer size.
pabloamr 0:8d55f1f49a33 202 *
pabloamr 0:8d55f1f49a33 203 * @param size the size of the transfer, in bytes (1..32)
pabloamr 0:8d55f1f49a33 204 * @param pipe pipe for the transfer (0..5, default 0)
pabloamr 0:8d55f1f49a33 205 */
pabloamr 0:8d55f1f49a33 206 void setTransferSize(int size = DEFAULT_NRF24L01P_TRANSFER_SIZE, int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 207
pabloamr 0:8d55f1f49a33 208 /**
pabloamr 0:8d55f1f49a33 209 * Get the transfer size.
pabloamr 0:8d55f1f49a33 210 *
pabloamr 0:8d55f1f49a33 211 * @return the size of the transfer, in bytes (1..32).
pabloamr 0:8d55f1f49a33 212 */
pabloamr 0:8d55f1f49a33 213 int getTransferSize(int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 214
pabloamr 0:8d55f1f49a33 215
pabloamr 0:8d55f1f49a33 216 /**
pabloamr 0:8d55f1f49a33 217 * Get the RPD (Received Power Detector) state.
pabloamr 0:8d55f1f49a33 218 *
pabloamr 0:8d55f1f49a33 219 * @return true if the received power exceeded -64dBm
pabloamr 0:8d55f1f49a33 220 */
pabloamr 0:8d55f1f49a33 221 bool getRPD(void);
pabloamr 0:8d55f1f49a33 222
pabloamr 0:8d55f1f49a33 223 /**
pabloamr 0:8d55f1f49a33 224 * Put the nRF24L01+ into Receive mode
pabloamr 0:8d55f1f49a33 225 */
pabloamr 0:8d55f1f49a33 226 void setReceiveMode(void);
pabloamr 0:8d55f1f49a33 227
pabloamr 0:8d55f1f49a33 228 /**
pabloamr 0:8d55f1f49a33 229 * Put the nRF24L01+ into Transmit mode
pabloamr 0:8d55f1f49a33 230 */
pabloamr 0:8d55f1f49a33 231 void setTransmitMode(void);
pabloamr 0:8d55f1f49a33 232
pabloamr 0:8d55f1f49a33 233 /**
pabloamr 0:8d55f1f49a33 234 * Power up the nRF24L01+ into Standby mode
pabloamr 0:8d55f1f49a33 235 */
pabloamr 0:8d55f1f49a33 236 void powerUp(void);
pabloamr 0:8d55f1f49a33 237
pabloamr 0:8d55f1f49a33 238 /**
pabloamr 0:8d55f1f49a33 239 * Power down the nRF24L01+ into Power Down mode
pabloamr 0:8d55f1f49a33 240 */
pabloamr 0:8d55f1f49a33 241 void powerDown(void);
pabloamr 0:8d55f1f49a33 242
pabloamr 0:8d55f1f49a33 243 /**
pabloamr 0:8d55f1f49a33 244 * Enable the nRF24L01+ to Receive or Transmit (using the CE pin)
pabloamr 0:8d55f1f49a33 245 */
pabloamr 0:8d55f1f49a33 246 void enable(void);
pabloamr 0:8d55f1f49a33 247
pabloamr 0:8d55f1f49a33 248 /**
pabloamr 0:8d55f1f49a33 249 * Disable the nRF24L01+ to Receive or Transmit (using the CE pin)
pabloamr 0:8d55f1f49a33 250 */
pabloamr 0:8d55f1f49a33 251 void disable(void);
pabloamr 0:8d55f1f49a33 252
pabloamr 0:8d55f1f49a33 253 /**
pabloamr 0:8d55f1f49a33 254 * Transmit data
pabloamr 0:8d55f1f49a33 255 *
pabloamr 0:8d55f1f49a33 256 * @param pipe is ignored (included for consistency with file write routine)
pabloamr 0:8d55f1f49a33 257 * @param data pointer to an array of bytes to write
pabloamr 0:8d55f1f49a33 258 * @param count the number of bytes to send (1..32)
pabloamr 0:8d55f1f49a33 259 * @return the number of bytes actually written, or -1 for an error
pabloamr 0:8d55f1f49a33 260 */
pabloamr 0:8d55f1f49a33 261 int write(int pipe, char *data, int count);
pabloamr 0:8d55f1f49a33 262
pabloamr 0:8d55f1f49a33 263 /**
pabloamr 0:8d55f1f49a33 264 * Receive data
pabloamr 0:8d55f1f49a33 265 *
pabloamr 0:8d55f1f49a33 266 * @param pipe the receive pipe to get data from
pabloamr 0:8d55f1f49a33 267 * @param data pointer to an array of bytes to store the received data
pabloamr 0:8d55f1f49a33 268 * @param count the number of bytes to receive (1..32)
pabloamr 0:8d55f1f49a33 269 * @return the number of bytes actually received, 0 if none are received, or -1 for an error
pabloamr 0:8d55f1f49a33 270 */
pabloamr 0:8d55f1f49a33 271 int read(int pipe, char *data, int count);
pabloamr 0:8d55f1f49a33 272
pabloamr 0:8d55f1f49a33 273 /**
pabloamr 0:8d55f1f49a33 274 * Determine if there is data available to read
pabloamr 0:8d55f1f49a33 275 *
pabloamr 0:8d55f1f49a33 276 * @param pipe the receive pipe to check for data
pabloamr 0:8d55f1f49a33 277 * @return true if the is data waiting in the given pipe
pabloamr 0:8d55f1f49a33 278 */
pabloamr 0:8d55f1f49a33 279 bool readable(int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 280
pabloamr 0:8d55f1f49a33 281 /**
pabloamr 0:8d55f1f49a33 282 * Disable all receive pipes
pabloamr 0:8d55f1f49a33 283 *
pabloamr 0:8d55f1f49a33 284 * Note: receive pipes are enabled when their address is set.
pabloamr 0:8d55f1f49a33 285 */
pabloamr 0:8d55f1f49a33 286 void disableAllRxPipes(void);
pabloamr 0:8d55f1f49a33 287
pabloamr 0:8d55f1f49a33 288 /**
pabloamr 0:8d55f1f49a33 289 * Disable AutoAcknowledge function
pabloamr 0:8d55f1f49a33 290 */
pabloamr 0:8d55f1f49a33 291 void disableAutoAcknowledge(void);
pabloamr 0:8d55f1f49a33 292
pabloamr 0:8d55f1f49a33 293 /**
pabloamr 0:8d55f1f49a33 294 * Enable AutoAcknowledge function
pabloamr 0:8d55f1f49a33 295 *
pabloamr 0:8d55f1f49a33 296 * @param pipe the receive pipe
pabloamr 0:8d55f1f49a33 297 */
pabloamr 0:8d55f1f49a33 298 void enableAutoAcknowledge(int pipe = NRF24L01P_PIPE_P0);
pabloamr 0:8d55f1f49a33 299
pabloamr 0:8d55f1f49a33 300 /**
pabloamr 0:8d55f1f49a33 301 * Disable AutoRetransmit function
pabloamr 0:8d55f1f49a33 302 */
pabloamr 0:8d55f1f49a33 303 void disableAutoRetransmit(void);
pabloamr 0:8d55f1f49a33 304
pabloamr 0:8d55f1f49a33 305 /**
pabloamr 0:8d55f1f49a33 306 * Enable AutoRetransmit function
pabloamr 0:8d55f1f49a33 307 *
pabloamr 0:8d55f1f49a33 308 * @param delay the delay between restransmits, in uS (250uS..4000uS)
pabloamr 0:8d55f1f49a33 309 * @param count number of retransmits before generating an error (1..15)
pabloamr 0:8d55f1f49a33 310 */
pabloamr 0:8d55f1f49a33 311 void enableAutoRetransmit(int delay, int count);
pabloamr 0:8d55f1f49a33 312
pabloamr 0:8d55f1f49a33 313 private:
pabloamr 0:8d55f1f49a33 314
pabloamr 0:8d55f1f49a33 315 /**
pabloamr 0:8d55f1f49a33 316 * Get the contents of an addressable register.
pabloamr 0:8d55f1f49a33 317 *
pabloamr 0:8d55f1f49a33 318 * @param regAddress address of the register
pabloamr 0:8d55f1f49a33 319 * @return the contents of the register
pabloamr 0:8d55f1f49a33 320 */
pabloamr 0:8d55f1f49a33 321 int getRegister(int regAddress);
pabloamr 0:8d55f1f49a33 322
pabloamr 0:8d55f1f49a33 323 /**
pabloamr 0:8d55f1f49a33 324 * Set the contents of an addressable register.
pabloamr 0:8d55f1f49a33 325 *
pabloamr 0:8d55f1f49a33 326 * @param regAddress address of the register
pabloamr 0:8d55f1f49a33 327 * @param regData data to write to the register
pabloamr 0:8d55f1f49a33 328 */
pabloamr 0:8d55f1f49a33 329 void setRegister(int regAddress, int regData);
pabloamr 0:8d55f1f49a33 330
pabloamr 0:8d55f1f49a33 331 /**
pabloamr 0:8d55f1f49a33 332 * Get the contents of the status register.
pabloamr 0:8d55f1f49a33 333 *
pabloamr 0:8d55f1f49a33 334 * @return the contents of the status register
pabloamr 0:8d55f1f49a33 335 */
pabloamr 0:8d55f1f49a33 336 int getStatusRegister(void);
pabloamr 0:8d55f1f49a33 337
pabloamr 0:8d55f1f49a33 338 SPI spi_;
pabloamr 0:8d55f1f49a33 339 DigitalOut nCS_;
pabloamr 0:8d55f1f49a33 340 DigitalOut ce_;
pabloamr 0:8d55f1f49a33 341 InterruptIn nIRQ_;
pabloamr 0:8d55f1f49a33 342
pabloamr 0:8d55f1f49a33 343 int mode;
pabloamr 0:8d55f1f49a33 344
pabloamr 0:8d55f1f49a33 345 };
pabloamr 0:8d55f1f49a33 346
pabloamr 0:8d55f1f49a33 347 #endif /* __NRF24L01P_H__ */