#ifndef __Talkthrough_DEFINED #define __Talkthrough_DEFINED //--------------------------------------------------------------------------// // Header files // //--------------------------------------------------------------------------// #include #include #include #include //--------------------------------------------------------------------------// // Symbolic constants // //--------------------------------------------------------------------------// // addresses for Port B (a?) in Flash A #define pFlashA_PortA_Dir (volatile unsigned char *)0x20270006 #define pFlashA_PortA_Data (volatile unsigned char *)0x20270004 // addresses for Port B in Flash A #define pFlashA_PortB_Dir (volatile unsigned char *)0x20270007 #define pFlashA_PortB_Data (volatile unsigned char *)0x20270005 // names for codec registers, used for iCodec1836TxRegs[] #define DAC_CONTROL_1 0x0000 #define DAC_CONTROL_2 0x1000 #define DAC_VOLUME_0 0x2000 #define DAC_VOLUME_1 0x3000 #define DAC_VOLUME_2 0x4000 #define DAC_VOLUME_3 0x5000 #define DAC_VOLUME_4 0x6000 #define DAC_VOLUME_5 0x7000 #define ADC_0_PEAK_LEVEL 0x8000 #define ADC_1_PEAK_LEVEL 0x9000 #define ADC_2_PEAK_LEVEL 0xA000 #define ADC_3_PEAK_LEVEL 0xB000 #define ADC_CONTROL_1 0xC000 #define ADC_CONTROL_2 0xD000 #define ADC_CONTROL_3 0xE000 // names for slots in ad1836 audio frame #define INTERNAL_ADC_L0 0 #define INTERNAL_ADC_L1 1 #define INTERNAL_ADC_R0 4 #define INTERNAL_ADC_R1 5 #define INTERNAL_DAC_L0 0 #define INTERNAL_DAC_L1 1 #define INTERNAL_DAC_L2 2 #define INTERNAL_DAC_R0 4 #define INTERNAL_DAC_R1 5 #define INTERNAL_DAC_R2 6 // size of array iCodec1836TxRegs and iCodec1836RxRegs #define CODEC_1836_REGS_LENGTH 11 // SPI transfer mode #define TIMOD_DMA_TX 0x0003 // SPORT0 word length #define SLEN_32 0x001f // DMA flow mode #define FLOW_1 0x1000 #define MAXSINEWAVE 10000 #define MIDIBASE 1000000 #define MIDIMAX 256 #define MIDINIT -1 #define MIDUNKNOWN -2 #define MIDDONE 0 #define MIDNOTEON 9 #define MIDNOTEOFF 8 #define MIDCONT 11 #define MIDPITCH 14 #define MIDTIMING 15 #define MAXPOLY 8 #define WAVETABLE 0x0300000 /* Whereever ... */ #define MAXWAVETABLE (10*0x0100000) /* 10 meg ? */ //--------------------------------------------------------------------------// // Global variables // //--------------------------------------------------------------------------// extern int iChannel0LeftIn; extern int iChannel0RightIn; extern int iChannel0LeftOut; extern int iChannel0RightOut; extern int iChannel1LeftIn; extern int iChannel1RightIn; extern int iChannel1LeftOut; extern int iChannel1RightOut; extern volatile short sCodec1836TxRegs[]; extern volatile int iRxBuffer1[]; extern volatile int iTxBuffer1[]; //--------------------------------------------------------------------------// // Prototypes // //--------------------------------------------------------------------------// // in file Initialisation.c void Init_EBIU(void); void Init_Flash(void); void Init1836(void); void Init_Sport0(void); void Init_DMA(void); void Init_Sport_Interrupts(void); void Enable_DMA_Sport(void); // in file Process_data.c void Process_Data(void); // in file ISRs.c EX_INTERRUPT_HANDLER(Sport0_RX_ISR); #endif //__Talkthrough_DEFINED