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

📄 test_aic23.c

📁 DSP2812资料,包括原理图,测试程序,使用说明,jjzhang166@163.com
💻 C
字号:

#include "DSP28_Device.h"

Uint16	  	volume;
int ADbuf[500];
int DA_wptr,DA_rptr,y;
int play_mode;
int	AicRegs;

void main(void)
{
	Uint16	temp,i;
	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/*初始化PIE*/
	InitPieCtrl();

	/*初始化PIE矢量表*/
	InitPieVectTable();	
	InitPeripherals();	
	AicRegs = 0xBF;
	Led8Reg = AicRegs;
    
	InitAic23();	
	delay(500);
    volume=108;
    WriteAic23(L_HEADPHONE_VOLUME,0x0180+volume);   
	
	EALLOW;	// This is needed to write to EALLOW protected registers
	PieVectTable.MRINTA = &ISRMcbspSend;
	EDIS;   // This is needed to disable write to EALLOW protected registers
	IER |= M_INT6;
	PieCtrl.PIEIER6.bit.INTx5 = 1;
	
    // Enable global Interrupts and higher priority real-time debug events:
	
//	EINT;   // Enable Global interrupt INTM
//	ERTM;	// Enable Global realtime interrupt DBGM
	play_mode = 0;
    while(1)
    	{	
    		for(temp=30000;temp>0;temp-=100)
    			{
       				for(i=0;i<2;i++)
      					{
         					y=5000;
         					McbspRegs.DXR1.all = y;       
         					delay(temp);
         					y=-5000;
         					McbspRegs.DXR1.all = y;       
         					delay(temp);
       					}
     			} 
     	}		 
}

interrupt void  ISRMcbspSend(void)
{
    int temp;
	PieCtrl.PIEACK.all = 0xFFFF;
	PieCtrl.PIEIFR6.bit.INTx5 = 0;
	ERTM;
        
      temp=McbspRegs.DRR1.all;
        
      DA_rptr++;
      if(DA_rptr>=500)
            DA_rptr=0;

      ADbuf[DA_rptr]=temp;   //保存录音数据
      
      if(play_mode==0)
        McbspRegs.DXR1.all = y;
                   //警报声的幅值
      else
        McbspRegs.DXR1.all = temp;        //放音
	
}


//========================== NO MORE ===========================

⌨️ 快捷键说明

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