Jan Wolfsberger
/
Climarizor
Climarizes the climate
main.cpp@0:863dad742041, 2016-05-09 (annotated)
- Committer:
- wolfsberger
- Date:
- Mon May 09 12:19:50 2016 +0000
- Revision:
- 0:863dad742041
-
Who changed what in which revision?
User | Revision | Line number | New 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 | } |