FN

Dependencies:   mbed RF24Network RF24

main.cpp

Committer:
belkaous
Date:
2019-04-08
Revision:
7:77a1606d3b7e
Parent:
6:4840dd0ef133

File content as of revision 7:77a1606d3b7e:

#include "mbed.h"
#include <RF24Network.h>
#include <RF24.h>
 
Serial pc(USBTX, USBRX);
InterruptIn button(D4);
 
PwmOut mypwm(D5);
 
RF24 radio(SPI_MOSI, SPI_MISO, SPI_SCK, D9, SPI_CS );

DigitalIn A(D8);
DigitalIn B(D7);
DigitalIn C(D6);


// Network uses that radio
RF24Network network(radio);
 
 
// Address of our node
uint16_t this_node;

// Address of the other node
const uint16_t other_node = 00;
 
// When did we last send?
unsigned long last_sent;
 
// How many have we sent already
unsigned long packets_sent;
 
// Structure of our payload
struct payload_t 
{
    unsigned long ms;
    unsigned long counter;
};
 
//interruption du NRF24
void pressed()
{
    mypwm.write(0.5);
}
 
int main()
{
    button.enable_irq();
    button.rise(&pressed);
    mypwm.period_us(40);
    mypwm.pulsewidth_us(20);
    mypwm.write(0.0);
    
if((!A.read()) && (!B.read()) && (C.read()) ) this_node = 01;
else if(!(A.read()) && (B.read()) && !(C.read()) ) this_node = 02;
else this_node = 03;

    pc.baud(115200);
    wait_ms(500);
 
    pc.printf("mBed RF24Network node\r\n");
    radio.begin();
    network.begin(/*channel*/ 90, /*node address*/ this_node);
    wait_ms(1000);
 
    while(1) 
    {
        // Pump the network regularly
        network.update();
        
        // Is there anything ready for us?
        while ( network.available() ) 
        {
            // If so, grab it and print it out
            RF24NetworkHeader header_rx;
            payload_t payload_rx;
            network.read(header_rx,&payload_rx,sizeof(payload_rx));
            pc.printf("Received packet # %d at %d ms\r\n",payload_rx.counter,payload_rx.ms);
            
            wait_us(1750);
            mypwm.write(0.0);
        }
 
    }
 
}