📄 volume_bois.c
字号:
/*
* Copyright 1999 by Texas Instruments Incorporated.
* All rights reserved. Property of Texas Instruments Incorporated.
* Restricted rights to use, duplicate or disclose this code are
* granted through contract.
* U.S. Patent Nos. 5,283,900 5,392,448
*/
/* "@(#) BIOS-C54x 3.01b 09-07-99 (bios54x-b15)" */
/***************************************************************************/
/* */
/* V O L U M E . C */
/* */
/* Audio gain processing using CLK ISR as data source, and a software */
/* interrupt for processing routine. */
/* */
/***************************************************************************/
#include "demo5402cfg.h"
#include <trc.h>
#include <sts.h>
#include <rtdx.h>
#include <clk.h>
#include "volume.h"
/* Global declarations */
Int inp_buffer[BUFSIZE]; /* processing data buffers */
Int out_buffer[BUFSIZE];
Int gain = MINGAIN; /* volume control variable */
Uns processingLoad = BASELOAD; /* processing routine load value */
/* RTDX_CreateInputChannel(control_channel); */
/* Functions */
extern Void load(Uns loadValue);
Int processing(Int *input, Int *output);
Void dataIO(Void);
int temp;
void fun_loop()
{ int i,j;
do
{
for(i=0;i<10000;i++)
for(j=0;j<100;j++)
temp++;
TSK_sleep(10);
}while(1);
}
void test()
{
}
Void mytest()
{
static int control=1;
//if(!RTDX_channelBusy(&control_channel))
{
if (RTDX_readNB(&control_channel,&control,sizeof(control)) > 0)
{
processingLoad=BASELOAD << control;
LOG_printf(&trace,"Load new value=%d\n",control);
}
}
}
/*
* ======== main ========
*/
Void main()
{
LOG_printf(&trace,"new volume example started\n");
RTDX_enableInput(&control_channel);
/* fall into DSP/BIOS idle loop */
return;
}
/*
* ======== processing ========
*
* FUNCTION: Called from processing_SWI to apply signal processing
* transform to input signal.
*
* PARAMETERS: address of input and output buffers.
*
* RETURN VALUE: TRUE.
*/
Int processing(Int *input, Int *output)
{
Int size = BUFSIZE;
while(size--){
*output++ = *input++ * gain;
}
/* additional processing load */
if(TRC_query(TRC_USER0) == 0)
STS_set(&mytestSTS,CLK_gethtime());
load(processingLoad);
if(TRC_query(TRC_USER0) == 0)
STS_delta(&mytestSTS,CLK_gethtime());
return(TRUE);
}
/*
* ======== dataIO ========
*
* FUNCTION: Called from timer ISR to fake a periodic hardware interrupt that
* reads in the input signal and outputs the processed signal.
*
* PARAMETERS: none.
*
* RETURN VALUE: none.
*/
Void dataIO()
{
/* do data I/O */
SWI_dec(&processing_SWI); /* post processing_SWI software interrupt */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -