Library for the (decidedly not as good as the 24L01+) Nordic 2401A radio.
Nrf2401A.h
- Committer:
- heroic
- Date:
- 2013-09-20
- Revision:
- 0:db163b6f1592
- Child:
- 1:049f6cb8b160
File content as of revision 0:db163b6f1592:
/* * Nrf2401A.h * A simplistic interface for using Sparkfun's Nrf2401A breakout boards with Arduino * * Ported to mbed by Jas Strong <jasmine@heroicrobotics.com> * * Original code for http://labs.ideo.com by Jesse Tane March 2009 * * License: * -------- * This is free software. You can redistribute it and/or modify it under * the terms of Creative Commons Attribution 3.0 United States License. * To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/us/ * or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. * * Original version Notes: * ----------------------- * For documentation on how to use this library, please visit http://www.arduino.cc/playground/Main/InterfacingWithHardware * Pin connections should be as follows for Arduino: * * DR1 = 2 (digital pin 2) * CE = 3 * CS = 4 * CLK = 5 * DAT = 6 * */ #include "mbed.h" #define NRF2401_BUFFER_SIZE 25 class Nrf2401 { public: // properties volatile unsigned char data[NRF2401_BUFFER_SIZE]; volatile unsigned int remoteAddress; volatile unsigned int localAddress; volatile unsigned char dataRate; volatile unsigned char channel; volatile unsigned char power; volatile unsigned char mode; // methods Nrf2401(PinName n_DR1, PinName n_CE, PinName n_SC, PinName n_CLK, PinName n_DAT); void rxMode(unsigned char messageSize=0); void txMode(unsigned char messageSize=0); void write(unsigned char dataByte); void write(unsigned char* dataBuffer=0); void read(unsigned char* dataBuffer=0); bool available(void); // you shouldn't need to use anything below this point.. private: volatile unsigned char payloadSize; volatile unsigned char configuration[15]; void configure(void); void loadConfiguration(bool modeSwitchOnly=false); void loadByte(unsigned char byte); DigitalOut _ce, _cs, _clk; DigitalIn _dr1; DigitalInOut _dat; };