Chris Dick
/
nRF2401A_Hello_World
Hello world example for the nRF2401A Library
main.cpp
- Committer:
- TheChrisyd
- Date:
- 2013-10-04
- Revision:
- 2:440c95f796ac
- Parent:
- 0:8fcb46c5fa63
- Child:
- 3:34ae527e9d41
File content as of revision 2:440c95f796ac:
#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); DigitalOut debug(LED2); #ifdef TX nRF2401A rf1(p10, p11, p12, p13, p14); #endif #ifdef RX nRF2401A rf2(p21, p22, p23, p24, p25); #endif Serial pc(USBTX, USBRX); #ifdef RX bool rx_recieved = false; nRF2401A_rx_handler_t nRF2401A_rx () { //rf2.printDataPacket(pc); debug = !debug; rx_recieved = true; return; } #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) .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); rf2.attachRXHandler(nRF2401A_rx(), 0); #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 if (rx_recieved) { rf2.printDataPacket(pc); rx_recieved = false; } #endif myled = 0; wait(0.25); } }