Library for the (decidedly not as good as the 24L01+) Nordic 2401A radio.

Revision:
0:db163b6f1592
Child:
1:049f6cb8b160
diff -r 000000000000 -r db163b6f1592 Nrf2401A.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Nrf2401A.h	Fri Sep 20 20:55:24 2013 +0000
@@ -0,0 +1,68 @@
+/*
+ *  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;
+};