📄 aic23_54x.c
字号:
#include "scancode.h"
#include "myapp.h"
char ConvertScanToChar(unsigned char cScanCode); // 将键盘扫描码转换为字符
#define REGISTERCLKMD (*(unsigned int *)0x58)
#define WAITSTATUS (*(unsigned int *)0x28)
#define SOUNDBUFFERLENGTH 0x0f000
unsigned int nSoundNumber,bPlayBack,bRecord,nCurrentSound,js,bls,bStop,bLongEnough;
#pragma DATA_SECTION(uSound,".sound")
unsigned int uSound[SOUNDBUFFERLENGTH];
ioport unsigned int port0000;
ioport unsigned int port8000;
ioport unsigned int port8001;
ioport unsigned int port8002;
ioport unsigned int port8007;
void main( void )
{
int i,j;
unsigned int nScanCode,nScanCode1;
unsigned char cKey;
port8000=0; port8000=0x80; port8000=0;
port8007=0; port8007=0x40; i=port8002;
REGISTERCLKMD=0;
// WAITSTATUS=0x0ffff;
js=nSoundNumber=bPlayBack=bRecord=nCurrentSound=bls=bStop=0;
// for ( i=0;i<SOUNDBUFFERLENGTH;i++ ) uSound[i]=0;
// initCLK(CPU_SPEED_160M);
initMcBSP1();
initAIC23();
initMcBSP0();
initInterrupt();
initVal();
REGISTERCLKMD=0x1007;
for ( i=0;i<2048;i++ ) nScanCode++;
DesableInterrupt(); js=0; bStop=1; bLongEnough=0;
port0000=1;
for(;;)
{
if ( bls )
if ( bPlayBack==0 )
{
DesableInterrupt();
bls=0;
js=0;
bStop=1;
}
if ( js==0 )
{
nScanCode1=port8001;
for ( i=0;i<1024;i++ );
nScanCode=port8001;
nScanCode&=0x0ff;
if ( nScanCode!=0 && nScanCode!=0x0ff )
{
if ( nScanCode==SCANCODE_Enter ) break;
else
{
cKey=ConvertScanToChar(nScanCode);
switch ( cKey )
{
case '0': // 录音
if ( bRecord )
{
bRecord=0;
nCurrentSound=nSoundNumber;
DesableInterrupt(); bStop=1;
js=0;
}
else
{
bRecord=1;
nSoundNumber=nCurrentSound=0;
EnableInterrupt(); bStop=0;
bLongEnough=0;
}
break;
case '1': // 放音
if ( bLongEnough )
{
bPlayBack=1; nSoundNumber=0;
bls=1;
EnableInterrupt(); bStop=0;
}
break;
case 0:
default: break;
}
}
i=port8002;
}
}
if ( bStop )
{
for ( i=0;i<1024;i++ )
for ( j=0;j<1024;j++ );
}
}
}
interrupt void rxData( void )
{
unsigned int i;
unsigned int uL,uR;
js++; js%=61440;
uL=DRR10;
uR=DRR20;
if ( bPlayBack )
{
i=nCurrentSound+nSoundNumber; i%=SOUNDBUFFERLENGTH;
DXR10=DXR20=uSound[i];
nSoundNumber++;
if ( nSoundNumber>=SOUNDBUFFERLENGTH )
bPlayBack=0;
}
else if ( bRecord)
{
uSound[nSoundNumber]=uL;
nSoundNumber++;
if ( nSoundNumber>=SOUNDBUFFERLENGTH )
{
bLongEnough=1;
nSoundNumber=0;
}
DXR10=uL;
DXR20=uR;
}
}
char ConvertScanToChar(unsigned char cScanCode)
{
char cReturn;
cReturn=0;
switch ( cScanCode )
{
case SCANCODE_0: cReturn='0'; break;
case SCANCODE_1: cReturn='1'; break;
case SCANCODE_2: cReturn='2'; break;
case SCANCODE_3: cReturn='3'; break;
case SCANCODE_4: cReturn='4'; break;
case SCANCODE_5: cReturn='5'; break;
case SCANCODE_6: cReturn='6'; break;
case SCANCODE_7: cReturn='7'; break;
case SCANCODE_8: cReturn='8'; break;
case SCANCODE_9: cReturn='9'; break;
}
return cReturn;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -