Library for the nRF2401A Transceiver

Dependents:   nRF2401A_Hello_World nRF2401A_Wireless_Accelerometer_joypad nRF2401A_Gameduino_Invaders

Revision:
4:e8523ef6e472
Parent:
3:7ae3a5e53a1f
Child:
5:18ce8a56b248
--- a/nRF2401A.h	Sat Oct 05 11:49:01 2013 +0000
+++ b/nRF2401A.h	Sun Oct 06 16:17:32 2013 +0000
@@ -57,21 +57,28 @@
  * #define TX
  * #define RX
  * 
+ * Serial pc(USBTX, USBRX);
  * DigitalOut  myled(LED1);
+ * 
  * #ifdef TX
  * nRF2401A    rf1(p10, p11, p12, p13, p14);
  * #endif
+ * 
  * #ifdef RX
  * nRF2401A    rf2(p21, p22, p23, p24, p25);
- * #endif
  * 
- * Serial pc(USBTX, USBRX);
+ * bool rx_recieved = false;
  * 
- * int main() {
- * 
+ * void nRF2401A_rx (void *arg) 
+ * {
+ *      rx_recieved = true;
+ * }
+ * #endif
+ * int main() 
+ * {
  *     wait(0.005);
- * 
  *     pc.printf("Hello nRF2401A\n\r");
+ *     
  * #ifdef TX    
  *     rf1.setDataPayloadLength(4 << 3)
  *        .setAddress(0x0, 0x0, 0xa6, 0xa6, 0xa6, 3 << 3)
@@ -80,8 +87,13 @@
  *        .setChannel(0x02);
  *        
  *     rf1.printControlPacket(pc);
+ *     rf1.flushControlPacket();
+ *     
+ *     nRF2401A::address_t rf2_addr = {0x0, 0x0, 0x53, 0x53, 0x53};
+ *     uint8_t msg[] = {0x01, 0x01, 0x01, 0x01};
+ *     uint32_t *msg32 = (uint32_t *) msg;
+ * #endif
  * 
- * #endif
  * #ifdef RX   
  *     rf2.setDataPayloadLength(4 << 3)
  *        .setAddress(0x0, 0x0, 0x53, 0x53, 0x53, 3 << 3)
@@ -90,35 +102,35 @@
  *        .setChannel(0x02);
  *        
  *     rf2.printControlPacket(pc);
- *     
- * #endif
- * #ifdef TX    
- *     rf1.flushControlPacket();
- * #endif
- * #ifdef RX
- *     rf2.flushControlPacket();
+ *     rf2.flushControlPacket();   
+ *     rf2.attachRXHandler(&nRF2401A_rx, 0);
  * #endif
- * #ifdef TX   
- *     nRF2401A::address_t rf2_addr = {0x0, 0x0, 0x53, 0x53, 0x53};
- *     uint8_t msg[] = {0x01, 0x01, 0x01, 0x01};
- *     uint32_t *msg32 = (uint32_t *) msg;
- * #endif
- *       
- *     while(1) {
+ *      
+ *     while(1) 
+ *     {
+ *     
  * #ifdef TX             
  *         rf1.sendMsg(rf2_addr, 3 << 3, msg, 4 << 3);
  *         *msg32 += 1;
  * #endif
+ * 
  *         myled = 1;
  *         wait(0.25);
- * #ifdef RX        
- *         rf2.printDataPacket(pc);
- * #endif           
+ *         
+ * #ifdef RX  
+ *         if (rx_recieved)
+ *         {      
+ *             rf2.printDataPacket(pc);
+ *             rx_recieved = false;
+ *         }
+ * #endif 
+ *       
  *         myled = 0;
  *         wait(0.25);
  *     }
  * }
  * 
+ * 
  * @endcode
  */