Hi
This is just a head's up.
In function nrf_esb_pop_tx(void) you have the following code ...
if (--m_tx_fifo.entry_point >= NRF_ESB_TX_FIFO_SIZE)
{
m_tx_fifo.entry_point = 0;
}
Instead it should be the following...
if (m_tx_fifo.entry_point == 0)
{
m_tx_fifo.entry_point = (NRF_ESB_TX_FIFO_SIZE-1);
}
else
{
m_tx_fifo.entry_point--;
}
Otherwise the bug is such that the packet that was 'deleted' is still sent and after that it all goes out of sequence
Kind regards
Mahendra