📄 libsi3000loaddci.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 + -