AN1836-AN21161 Analog Devices, AN1836-AN21161 Datasheet - Page 57

no-image

AN1836-AN21161

Manufacturer Part Number
AN1836-AN21161
Description
Interfacing the ADSP-21161 SIMD SHARC DSP to the AD1836 (24-bit/96 kHz) Multichannel Codec
Manufacturer
Analog Devices
Datasheet
C-callable Assembly Routines for Processing Codec Data
#include <asm_sprt.h>
#include <def21161.h>
#include "adds_21161_ezkit.h"
.segment /dm seg_dmda;
/* AD1836 stereo-channel data holders - used for DSP processing of audio data received from codec */
// input channels
.var
.var
*/
.var
.var
.var
.var
//output channels
.var
.var
.var
.var
.var
.var
.var
.var
.var
.var
.global
.global
.global
.global
.global
.global
.global
.global
.global
.global
.global
.global
.global
.global
.extern
.extern
.endseg;
.segment /pm seg_pmco;
_Receive_Samples:
.global _Receive_Samples;
//void Receive_Samples();
_Transmit_Samples:
.global _Transmit_Samples;
/* get AD1836 left channel input samples, save to data holders for processing */
r1 = -31;
r0 = dm(_rx0a_buf + Internal_ADC_L0); f0 = float r0 by r1;
r0 = dm(_rx0a_buf + Internal_ADC_L1); f0 = float r0 by r1;
r0 = dm(_rx0a_buf + AUX_ADC_L0);
/* get AD1836 right channel input samples, save to data holders for processing */
r0 = dm(_rx0a_buf + Internal_ADC_R0); f0 = float r0 by r1;
r0 = dm(_rx0a_buf + Internal_ADC_R1); f0 = float r0 by r1;
r0 = dm(_rx0a_buf + AUX_ADC_R0);
leaf_exit;
_Left_Channel_In0;
_Left_Channel_In1;
_Right_Channel_In0;
_Right_Channel_In1;
_Left_Channel_SPDIF_rx;/* Input values from the DAR CS8414 */
_Right_Channel_SPDIF_rx;
_Left_Channel_Out0;
_Left_Channel_Out1;
_Left_Channel_Out2;
_Right_Channel_Out0;
_Right_Channel_Out1;
_Right_Channel_Out2;
_Left_Channel_AD1852; /* Output values for AD1852 stereo DAC */
_Right_Channel_AD1852;
_Left_Channel;
_Right_Channel;
_Left_Channel_In0;
_Left_Channel_In1;
_Right_Channel_In0;
_Right_Channel_In1;
_Left_Channel_Out0;
_Left_Channel_Out1;
_Left_Channel_Out2;
_Right_Channel_Out0;
_Right_Channel_Out1;
_Right_Channel_Out2;
_Left_Channel_AD1852;
_Right_Channel_AD1852;
_Left_Channel_SPDIF_rx;
_Right_Channel_SPDIF_rx;
_rx0a_buf;
_tx2a_buf;
/* Input values from the 2 AD1836 internal stereo ADCs */
/* 1/8th inch stereo jack connected to internal stereo ADC1
/* Output values for the 3 AD1836 internal stereo DACs */
/* Left and Right Channel 0 DACs go to headphone jack */
/* Can use these variables as intermediate results to next
f0 = float r0 by r1;
f0 = float r0 by r1;
filtering stage */
dm(_Left_Channel_In0) = r0;
dm(_Left_Channel_In1) = r0;
dm(_Left_Channel_SPDIF_rx) = r0;
dm(_Right_Channel_In0) = r0;
dm(_Right_Channel_In1) = r0;
dm(_Right_Channel_SPDIF_rx) = r0;

Related parts for AN1836-AN21161