Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: nRF24L01P_Hello_World nRF24L01P
Diff: circularBuffer.cpp
- Revision:
- 5:668dd9395ca5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/circularBuffer.cpp Fri Apr 16 16:01:03 2021 +0000 @@ -0,0 +1,94 @@ +#include "circularBuffer.h" + +//-----------------------------TX-----------------------------// +int cbTxHead; +int cbTxTail; +char cbTxBuffer[BUFFER_SIZE]; + +void cbTxSendMessage(char* message, int length) +{ + int i; + if (cbTxRemainingSize() > length) + for (i = 0; i < length; i++) + cbTxAddOne(message[i]); +} + +void cbTxAddOne(char value) +{ + if (cbTxRemainingSize() > 0) + { + cbTxBuffer[cbTxHead++] = value; + if (cbTxHead >= BUFFER_SIZE) + cbTxHead = 0; + } +} + +char cbTxGetOne() +{ + char value = cbTxBuffer[cbTxTail++]; + if (cbTxTail >= BUFFER_SIZE) + cbTxTail = 0; + return value; +} + +int cbTxRemainingSize() +{ + int size; + if (cbTxTail > cbTxHead) + size = cbTxTail - cbTxHead; + else + size = BUFFER_SIZE - (cbTxHead - cbTxTail); + return size; +} + +int cbTxGetDataSize() +{ + return BUFFER_SIZE - cbTxRemainingSize(); +} + + +//-----------------------------RX-----------------------------// +int cbRxHead; +int cbRxTail; +char cbRxBuffer[BUFFER_SIZE]; + +void cbRxAddOne(char value) +{ + if (cbRxRemainingSize() > 0) + { + cbRxBuffer[cbRxHead++] = value; + if (cbRxHead >= BUFFER_SIZE) + cbRxHead = 0; + } +} + +char cbRxGetOne() +{ + char value = cbRxBuffer[cbRxTail++]; + if (cbRxTail >= BUFFER_SIZE) + cbRxTail = 0; + return value; +} + +unsigned char cbRxIsDataAvailable() +{ + if (cbRxTail != cbRxHead) + return 1; + else + return 0; +} + +int cbRxRemainingSize() +{ + int size; + if (cbRxTail > cbRxHead) + size = cbRxTail - cbRxHead; + else + size = BUFFER_SIZE - (cbRxHead - cbRxTail); + return size; +} + +int cbRxGetDataSize() +{ + return BUFFER_SIZE - cbRxRemainingSize(); +} \ No newline at end of file