📄 main.asm
字号:
/*****************************************************************************
** **
** Name: BF533 ASM Talkthrough I2S **
** **
******************************************************************************
(C) Copyright 2003 - Analog Devices, Inc. All rights reserved.
File Name: Main.asm
Date Modified: 05/03/03 HD Rev 1.0
Software: VisualDSP++3.0
Hardware: ADSP-BF533 EZ-KIT Board
Special Connections: Connect RSCLK0 to TSCLK0 together (Turn SW9 pin 6 on).
Connect RFS0 to TFS0 together (Turn SW9 pin 5 ON).
Connect an input source (such as a radio) to the Audio
input jack and an output source (such as headphones) to
the Audio output jack.
Purpose: This program sets up the SPI port on the ADSP-BF533 to
configure the AD1836 codec. The SPI port is disabled
after initialization. The data to/from the codec are
transfered over SPORT0 in I2S mode.
Program Parameters:
******************************************************************************/
#include "Talkthrough.h"
/*****************************************************************************
Variables
Description: The variables ChannelxLeftIn and ChannelxRightIn contain
the data coming from the codec AD1836. The (processed)
playback data are written into the variables
ChannelxLeftOut and ChannelxRightOut respectively, which
are then sent back to the codec in the SPORT0 ISR.
The values in the array Codec1836TxRegs can be modified to
set up the codec in different configurations according to
the AD1885 data sheet.
******************************************************************************/
.section L1_data_a;
// left input data from ad1836
.var Channel0LeftIn, Channel1LeftIn;
// right input data from ad1836
.var Channel0RightIn, Channel1RightIn;
// left ouput data for ad1836
.var Channel0LeftOut, Channel1LeftOut;
// right ouput data for ad1836
.var Channel0RightOut, Channel1RightOut;
// array for registers to configure the ad1836
// names are defined in "Talkthrough.h"
.align 2;
.byte2 Codec1836TxRegs[CODEC_1836_REGS_LENGTH] =
{
DAC_CONTROL_1 | 0x000,
DAC_CONTROL_2 | 0x000,
DAC_VOLUME_0 | 0x3ff,
DAC_VOLUME_1 | 0x3ff,
DAC_VOLUME_2 | 0x3ff,
DAC_VOLUME_3 | 0x3ff,
DAC_VOLUME_4 | 0x000,
DAC_VOLUME_5 | 0x000,
ADC_CONTROL_1 | 0x000,
ADC_CONTROL_2 | 0x000,
ADC_CONTROL_3 | 0x040
};
// SPORT0 DMA transmit buffer
.align 4;
.byte4 tx_buf[4];
// SPORT0 DMA receive buffer
.align 4;
.byte4 rx_buf[4];
/*****************************************************************************
Function: _main
Description: After calling a few initalization routines, main just
waits in a loop forever. The code to process the incoming
data can be placed in the function Process_Data in the
file "Process_Data.asm".
******************************************************************************/
.global _main;
.section L1_code;
_main:
call Init_EBIU;
call Init_Flash;
call Init_1836;
call Init_Sport0;
call Init_DMA;
call Init_Interrupts;
call Enable_DMA_Sport0;
WAIT_FOREVER:
JUMP WAIT_FOREVER;
_main.END:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -