Climarizes the climate

Dependencies:   mbed nRF24L01P

Committer:
wolfsberger
Date:
Mon May 09 12:19:50 2016 +0000
Revision:
0:863dad742041
-

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfsberger 0:863dad742041 1 #include "mbed.h"
wolfsberger 0:863dad742041 2 #include "nRF24L01P.h"
wolfsberger 0:863dad742041 3
wolfsberger 0:863dad742041 4 PinName nrfMOSI = SPI_MOSI;
wolfsberger 0:863dad742041 5 PinName nrfMISO = SPI_MISO;
wolfsberger 0:863dad742041 6 PinName nrfSCK = SPI_SCK;
wolfsberger 0:863dad742041 7 PinName nrfCSN = SPI_CS;
wolfsberger 0:863dad742041 8 PinName nrfCE = D7;
wolfsberger 0:863dad742041 9 PinName nrfIRQ = NC;
wolfsberger 0:863dad742041 10
wolfsberger 0:863dad742041 11 Serial pc(USBTX, USBRX);
wolfsberger 0:863dad742041 12 nRF24L01P my_nrf24l01p(nrfMOSI, nrfMISO, nrfSCK, nrfCSN, nrfCE, nrfIRQ);
wolfsberger 0:863dad742041 13
wolfsberger 0:863dad742041 14 int main()
wolfsberger 0:863dad742041 15 {
wolfsberger 0:863dad742041 16 const size_t TRANSFER_SIZE = 4;
wolfsberger 0:863dad742041 17 const size_t RECEIVER_SIZE = 4;
wolfsberger 0:863dad742041 18
wolfsberger 0:863dad742041 19 char txData[TRANSFER_SIZE], rxData[RECEIVER_SIZE];
wolfsberger 0:863dad742041 20 int txDataCnt = 0;
wolfsberger 0:863dad742041 21 int rxDataCnt = 0;
wolfsberger 0:863dad742041 22
wolfsberger 0:863dad742041 23 // Display the (default) setup of the nRF24L01+ chip
wolfsberger 0:863dad742041 24 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
wolfsberger 0:863dad742041 25 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
wolfsberger 0:863dad742041 26 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
wolfsberger 0:863dad742041 27 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
wolfsberger 0:863dad742041 28 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
wolfsberger 0:863dad742041 29
wolfsberger 0:863dad742041 30 pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
wolfsberger 0:863dad742041 31
wolfsberger 0:863dad742041 32 my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
wolfsberger 0:863dad742041 33
wolfsberger 0:863dad742041 34 my_nrf24l01p.setReceiveMode();
wolfsberger 0:863dad742041 35 my_nrf24l01p.enable();
wolfsberger 0:863dad742041 36
wolfsberger 0:863dad742041 37 while (1) {
wolfsberger 0:863dad742041 38
wolfsberger 0:863dad742041 39 // If we've received anything over the host serial link...
wolfsberger 0:863dad742041 40 if ( pc.readable() ) {
wolfsberger 0:863dad742041 41
wolfsberger 0:863dad742041 42 // ...add it to the transmit buffer
wolfsberger 0:863dad742041 43 txData[txDataCnt++] = pc.getc();
wolfsberger 0:863dad742041 44
wolfsberger 0:863dad742041 45 // If the transmit buffer is full
wolfsberger 0:863dad742041 46 if ( txDataCnt >= sizeof( txData ) ) {
wolfsberger 0:863dad742041 47
wolfsberger 0:863dad742041 48 // Send the transmitbuffer via the nRF24L01+
wolfsberger 0:863dad742041 49 my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
wolfsberger 0:863dad742041 50
wolfsberger 0:863dad742041 51 txDataCnt = 0;
wolfsberger 0:863dad742041 52 }
wolfsberger 0:863dad742041 53 }
wolfsberger 0:863dad742041 54
wolfsberger 0:863dad742041 55 // If we've received anything in the nRF24L01+...
wolfsberger 0:863dad742041 56 if ( my_nrf24l01p.readable() ) {
wolfsberger 0:863dad742041 57
wolfsberger 0:863dad742041 58 // ...read the data into the receive buffer
wolfsberger 0:863dad742041 59 rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) );
wolfsberger 0:863dad742041 60
wolfsberger 0:863dad742041 61 // Display the receive buffer contents via the host serial link
wolfsberger 0:863dad742041 62 for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) {
wolfsberger 0:863dad742041 63
wolfsberger 0:863dad742041 64 pc.putc( rxData[i] );
wolfsberger 0:863dad742041 65 }
wolfsberger 0:863dad742041 66 }
wolfsberger 0:863dad742041 67 }
wolfsberger 0:863dad742041 68 }