📄 util.c
字号:
#include"myApp.h"
void initCLK( int value)
{
int i;
CLKMD=0;
for(i=0;i<5;i++);
CLKMD=value;
for(i=0;i<5;i++);
}
void initInterrupt( void )
{
int i;
asm(" ssbx INTM");
i= PMST;
PMST =i&0xff;
IMR=0x30;
IFR=0xff;
asm(" rsbx INTM");
}
void initMcBSP0( void )
{
SPSA0=SPCR1;
SPSD0=0x0000;
SPSA0=SPCR2;
SPSD0=0x0000;
SPSA0=RCR1;
SPSD0=0xa0;
SPSA0=RCR2;
SPSD0=0xa0;
SPSA0=XCR1;
SPSD0=0xa0;
SPSA0=XCR2;
SPSD0=0xa0;
SPSA0=SRGR1;
SPSD0=0x1f00;
SPSA0=SRGR2;
SPSD0=0x3f;
SPSA0=PCR;
// SPSD0=0x8f;
SPSD0=0x8f;
SPSA0=SPCR2;
SPSD0=0x2c1;
SPSA0=SPCR1;
SPSD0=0x2001;
}
void initAIC23( void )
{
// Reset the AIC23 and turn on all power
AIC23_Write(AIC23_RESET_REG, 0);
AIC23_Write(AIC23_POWER_DOWN_CTL, 0);
// Set up paths and volume control
//AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL | ANAPCTL_MICB);
AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC );
//AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL);
AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0);
// Turn on volume for line inputs
AIC23_Write(AIC23_LT_LINE_CTL, 0x17);
AIC23_Write(AIC23_RT_LINE_CTL,0x17);
// Configure the AIC23 for master mode, 44.1KHz stereo, 16 bit samples
// Use 12MHz USB clock
AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_LRP|DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP );
AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_08 /*| SRC_BOSR | SRC_MO*/);
//AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_44 );
// Turn on headphone volume and digital interface
// AIC23_Write(AIC23_LT_HP_CTL, 0x79); // 0x79 for speakers
// AIC23_Write(AIC23_RT_HP_CTL, 0x79);
AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT);
}
void initAIC23_1( void )
{
// Reset the AIC23 and turn on all power
AIC23_Write(AIC23_RESET_REG, 0);
AIC23_Write(AIC23_POWER_DOWN_CTL, 0);
// Set up paths and volume control
//AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL | ANAPCTL_MICB);
AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC );
//AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL);
AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0);
// Turn on volume for line inputs
AIC23_Write(AIC23_LT_LINE_CTL, 0x17);
AIC23_Write(AIC23_RT_LINE_CTL,0x17);
// Configure the AIC23 for master mode, 44.1KHz stereo, 16 bit samples
// Use 12MHz USB clock
AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_LRP|DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP );
AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_08 | SRC_BOSR | SRC_MO);
//AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_44 );
// Turn on headphone volume and digital interface
// AIC23_Write(AIC23_LT_HP_CTL, 0x79); // 0x79 for speakers
// AIC23_Write(AIC23_RT_HP_CTL, 0x79);
AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT);
}
void initMcBSP1( void )/*configuation the McBSP1 as SPI mode*/
{
int i;
SPSA1=SPCR1;
SPSD1=0; /*reset rev */
SPSA1=SPCR2; /*reset xtm*/
SPSD1=0;
SPSA1=SPCR1;
SPSD1=0x1800;
SPSA1=RCR1;
SPSD1=0x40;
SPSA1=XCR1;
SPSD1=0x40;
SPSA1=SRGR2;
SPSD1=0x2000;
SPSA1=SRGR1;
SPSD1=0xff;
SPSA1=XCR2;
SPSD1=0x0;
SPSA1=RCR2;
SPSD1=0x0;
SPSA1=PCR;
SPSD1=0xA08;//a0a
SPSA1=SPCR2;
SPSD1=SPSD1|0x40;
for(i=0;i<10;i++);
SPSA1=SPCR1;
SPSD1=SPSD1|0x1; /*reset rev */
SPSA1=SPCR2; /*reset xtm*/
SPSD1=SPSD1|0x1;
for(i=0;i<10;i++);
}
void AIC23_Write(unsigned short regaddr, unsigned short data)
{
int i,j;
j= regaddr*0x200+data;
SPSA1=SPCR2;
for(i=SPSD1&0x2;i==0;i=SPSD1&2);
DXR11=j;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -