This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320VC5510A: Is this a correct way to do the ISR in the code

Part Number: TMS320VC5510A
Other Parts Discussed in Thread: LM1117

Tool/software: Code Composer Studio

Hi 

I am using the TMS320vc5510a to do MCBSP to connect a codec to process voice, below is how I process it in the code, my code does the functions very well, we can process the voice in PING-PONG buffers with DMA without any problem, and hardware is also well designed. the issue is that the DSP and it's core LDO (1.6V) chip are hot, looks like DSP runs in full speed and no chance get a moment to relax :), I am wondering is it I didn't process the while loop correctly in main, in other words, Does the DSP needs a properly loop to process ISR event?

I am using C55xxCSL and CCS5.5.

............

void main(void) {
    .............
   while (1) {
      if (dataAvailable) {
        setLed(on);
        processVoice();
        dataAvailable = 0;
     }else {
       setLed(off);
    }
  }
}

void processVoice(){
   if (pingOrPong == PING) {
      processPingBuffer();
   }else{
      processPongBuffer();
   }
}

interrupt void dmaRcvIsrS1(void) {
    if (pingOrPong == PING) {
    // Set new state to PONG
    pingOrPong = PONG;
   }
  else {
    // Set new state to PING
    pingOrPong = PING;
  }
  dataAvailable = 1;
}

Thank you

Tiexue