A wireless accelerometer based joypad using FRDM-KL25Z for the Gameduino based space invaders.

Dependencies:   MMA8451Q mbed nRF2401A

Fork of nRF2401A_Hello_World by Chris Dick

nRF2401A connected to the KL25Z board:

/media/uploads/TheChrisyd/2014-03-08_22.55.16.jpg

Revision:
0:8fcb46c5fa63
Child:
2:440c95f796ac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Oct 04 16:24:29 2013 +0000
@@ -0,0 +1,68 @@
+#include "mbed.h"
+#include "nRF2401A.h"
+
+// comment these out depending on the job of the mbed. If your only using one mbed leave both uncommented.
+#define TX
+#define RX
+
+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);
+
+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)
+       .setCRCMode(nRF2401A::NO_CRC)
+       .setDataRate(nRF2401A::BIT_RATE_250KBITS)
+       .setChannel(0x02);
+       
+    rf1.printControlPacket(pc);
+
+#endif
+#ifdef RX   
+    rf2.setDataPayloadLength(4 << 3)
+       .setAddress(0x0, 0x0, 0x53, 0x53, 0x53, 3 << 3)
+       .setCRCMode(nRF2401A::NO_CRC)
+       .setDataRate(nRF2401A::BIT_RATE_250KBITS)
+       .setChannel(0x02);
+       
+    rf2.printControlPacket(pc);
+    
+#endif
+#ifdef TX    
+    rf1.flushControlPacket();
+#endif
+#ifdef RX
+    rf2.flushControlPacket();
+#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) {
+#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           
+        myled = 0;
+        wait(0.25);
+    }
+}