ΣSigmaStudio Ask AI Русский Log in

Circular buffers problem,why no output from builtin_circptr function?

Processors & DSP AmmonMneg Jun 22, 2020 00:00 1 replies Original on forum ↗
Subscribe
AmmonMneg Question
Jun 22, 2020 00:00

//Can any help to check below code ,why the Tx_out no output?

float Rx_In[16][BUF_TICK_SIZE];

float Tx_Out[16][BUF_TICK_SIZE];

float DelayLine_Wrindex[16];

float DelayLine_DelayTime[16];

SEG_DRV_SDRAM float Rx_In_DelayBuf[16][MaxDelay1360mS]; //16 channel delay line buffer

void CircularDelay(float *in,float *out,float *delayBuffer, float *DelayIndexPtr,int DelayTime)
{
float *delayWritePtr=DelayIndexPtr;
int writeIndex; // delay index
int i;
float *bufPtr;

writeIndex=delayWritePtr-delayBuffer;

bufPtr = delayBuffer;
bufPtr = __builtin_circptr(bufPtr, writeIndex, delayBuffer, DelayTime);

#pragma loop_count(8,1024,8)
for (i=0; i<BUF_TICK_SIZE; i++) {
out[i] = *bufPtr;
bufPtr = __builtin_circptr(bufPtr, 1, delayBuffer, DelayTime);
}

bufPtr = delayBuffer;
bufPtr = __builtin_circptr(bufPtr, writeIndex, delayBuffer, DelayTime);

#pragma loop_count(8,1024,8)
for (i=0; i<BUF_TICK_SIZE; i++) {
*bufPtr = in[i];
bufPtr = __builtin_circptr(bufPtr, 1, delayBuffer, DelayTime);
}
delayWritePtr = bufPtr;
}

//Recall

for(i=0;i<16;i++) //16 channels

CircularDelay(Rx_In[i], Tx_Out[i], &Rx_In_DelayBuf[i][0],&DelayLine_Wrindex[i],DelayLine_DelayTime[i]);

//Tx_out no output. can any one help to check what is the peoblem?

sharc

ADIApproved Reply
Jun 26, 2020 00:00

Hi,

Can you confirm the processor name and peripheral that you are using?

Regards,
Anand Selvaraj.