?? test_aic23.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;
delay(temp);
y=-5000;
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 + -