31 lines
834 B
C
31 lines
834 B
C
#ifndef BUFFER_H
|
|
#define BUFFER_H
|
|
|
|
#include "Arduino.h"
|
|
|
|
extern uint8_t RF_rxBuffer[512]; //must have and even number of elements
|
|
extern uint8_t* RF_rxBufferStartP;
|
|
extern uint8_t* RF_rxBufferEndP;
|
|
extern volatile uint8_t* bufferWriteP;
|
|
|
|
inline uint16_t calculateBufferPointerDistance(uint8_t* bufStartP, uint8_t* bufEndP) {
|
|
if (bufStartP <= bufEndP) {
|
|
return bufEndP - bufStartP + 1;
|
|
} else {
|
|
return (RF_rxBufferEndP - bufStartP) + (bufEndP - RF_rxBufferStartP) + 2;
|
|
}
|
|
}; //end calculateBufferPointerDistance
|
|
|
|
inline uint8_t* getNextBufferPointer(uint8_t* p) {
|
|
if ( p + 1 > RF_rxBufferEndP) {
|
|
return RF_rxBufferStartP;
|
|
} else {
|
|
return p + 1;
|
|
}
|
|
}; //end getNextBufferPointer
|
|
|
|
inline void stepBufferPointer(uint8_t** p) {
|
|
*p = getNextBufferPointer(*p);
|
|
}; //end stepBufferPointer
|
|
|
|
#endif //BUFFER_H
|