⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libsi3000loaddci.c

📁 Audio compression on embedded board
💻 C
字号:
/*********************************************************************
*                                                                    *
*                       Software License Agreement                   *
*                                                                    *
*   The software supplied herewith by Microchip Technology           *
*   Incorporated (the "Company") for its dsPIC controller            *
*   is intended and supplied to you, the Company's customer,         *
*   for use solely and exclusively on Microchip dsPIC                *
*   products. The software is owned by the Company and/or its        *
*   supplier, and is protected under applicable copyright laws. All  *
*   rights are reserved. Any use in violation of the foregoing       *
*   restrictions may subject the user to criminal sanctions under    *
*   applicable laws, as well as to civil liability for the breach of *
*   the terms and conditions of this license.                        *
*                                                                    *
*   THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION.  NO           *
*   WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,    *
*   BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND    *
*   FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE     *
*   COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL,  *
*   INCIDENTAL OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.  *
*                                                                    *
*********************************************************************/ 

/******************************************************************************
**
**  Filename:    libG711Si3000LoadDCI.c 
**
**  System:      RISC
**
**  Platform:    dsPIC33F
**
**  Description: This file contains only the API libG711Si3000LoadDCI().It 
**               retrives data from user defined ping pong buffers and loads  
**               it to the DCI TXBUFx buffer registers.
**      
******************************************************************************/

#include <p33Fxxxx.h>
#include "G711Lib_common.h"
#include "G711Lib_si3000.h"
#include "G711Lib_internal.h"

/******************************************************************************
**
**  Function Name: libSi3000LoadDCI ( ) 
**
**  Description:   This API is called in the DCI ISR for moving data from the
**                 user defined ping pong buffers to the DCI buffer registers
**                 TXBUFx's.It accesses members of codecsetup structure. It has
**                 no outputs.The user should take care to set the DCI buffer
**                 length such that the number of samples per Block should be
**                 divisible by it.
**
******************************************************************************/
void libSi3000LoadDCI ( void )
{

  /*The user should have given command for playing and one of the ping pong
    buffer should have been filled to its capacity.*/
  if ( codecdata.fStartPlay == 0x01 )
  {
    {        
      /* DCI buffer length equal to 4. */ 
      TXBUF0 = ( *codecdata.sampleExpandOpBuffer  );
      (  codecdata.sampleExpandOpBuffer )++;
      TXBUF1 = ( *codecdata.sampleExpandOpBuffer  );
      (  codecdata.sampleExpandOpBuffer  )++;
      TXBUF2 = ( *codecdata.sampleExpandOpBuffer  );
      (  codecdata.sampleExpandOpBuffer  )++;
      TXBUF3 = ( *codecdata.sampleExpandOpBuffer  );
      (  codecdata.sampleExpandOpBuffer )++;
      codecdata.countLoad  += BUFFERLENGTH;
    }
    if ( codecdata.countLoad  == NUMOFSAMPLESPERBLOCK )
	{
      /* LED3 for debugging purpose. */
      PORTDbits.RD2 ^= 0x1;

      /*After one of the ping pong sample buffer's has been played clear the
        load counter and increment blockCount.*/
      codecdata.countLoad  = 0x0000;
      ( codecdata.loadblockCount )++;

      /*Rewind the sample buffer pointer to the begining of the sample buffer*/
      codecdata.sampleExpandOpBuffer -= (NUMOFSAMPLESPERBLOCK );

      /* Clear the flag to indicate that the sample buffer had been played */
      codecdata.fBlockplayed = 0x00;
     }
   }
 }

/*-----------------------------------------------------------------------------
                          END OF FILE:libSi3000LoadDCI.c 
-----------------------------------------------------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -