From ef69ae72e9163f0e4caedbf682f84510be8771f1 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 25 Jan 2018 15:42:21 +0000 Subject: Lab 4 part 1 --- .../.history/ae/30716684d80100181ce89bcacea45786 | 131 ++++++++++++++ .../.history/ae/30e6f06bdd0100181ce89bcacea45786 | 197 +++++++++++++++++++++ 2 files changed, 328 insertions(+) create mode 100644 lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30716684d80100181ce89bcacea45786 create mode 100644 lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30e6f06bdd0100181ce89bcacea45786 (limited to 'lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae') diff --git a/lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30716684d80100181ce89bcacea45786 b/lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30716684d80100181ce89bcacea45786 new file mode 100644 index 0000000..d3c4f56 --- /dev/null +++ b/lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30716684d80100181ce89bcacea45786 @@ -0,0 +1,131 @@ +/************************************************************************************* + DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING + IMPERIAL COLLEGE LONDON + + EE 3.19: Real Time Digital Signal Processing + Dr Paul Mitcheson and Daniel Harvey + + LAB 3: Interrupt I/O + + ********* I N T I O. C ********** + + Demonstrates inputing and outputing data from the DSK's audio port using interrupts. + + ************************************************************************************* + Updated for use on 6713 DSK by Danny Harvey: May-Aug 2006 + Updated for CCS V4 Sept 10 + ************************************************************************************/ +/* + * You should modify the code so that interrupts are used to service the + * audio port. + */ +/**************************** Pre-processor statements ******************************/ + +#include +// Included so program can make use of DSP/BIOS configuration tool. +#include "dsp_bios_cfg.h" + +/* The file dsk6713.h must be included in every program that uses the BSL. This + example also includes dsk6713_aic23.h because it uses the + AIC23 codec module (audio interface). */ +#include "dsk6713.h" +#include "dsk6713_aic23.h" + +// math library (trig functions) +#include + +// Some functions to help with writing/reading the audio ports when using interrupts. +#include +#include "Matlab/filter_coeff.txt" +// Some functions to help with configuring hardware +#include "helper_functions_polling.h" + +// PI defined here for use in your code +#define PI 3.141592653589793 + +/******************************* Global declarations ********************************/ + +/* Audio port configuration settings: these values set registers in the AIC23 audio + interface to configure it. See TI doc SLWS106D 3-3 to 3-10 for more info. */ +DSK6713_AIC23_Config Config = { \ + /**********************************************************************/ + /* REGISTER FUNCTION SETTINGS */ + /**********************************************************************/\ + 0x0017, /* 0 LEFTINVOL Left line input channel volume 0dB */\ + 0x0017, /* 1 RIGHTINVOL Right line input channel volume 0dB */\ + 0x01f9, /* 2 LEFTHPVOL Left channel headphone volume 0dB */\ + 0x01f9, /* 3 RIGHTHPVOL Right channel headphone volume 0dB */\ + 0x0011, /* 4 ANAPATH Analog audio path control DAC on, Mic boost 20dB*/\ + 0x0000, /* 5 DIGPATH Digital audio path control All Filters off */\ + 0x0000, /* 6 DPOWERDOWN Power down control All Hardware on */\ + 0x0043, /* 7 DIGIF Digital audio interface format 16 bit */\ + 0x008d, /* 8 SAMPLERATE Sample rate control 8 KHZ */\ + 0x0001 /* 9 DIGACT Digital interface activation On */\ + /**********************************************************************/ +}; + + +// Codec handle:- a variable used to identify audio interface +DSK6713_AIC23_CodecHandle H_Codec; + + /******************************* Function prototypes ********************************/ +void init_hardware(void); +void init_HWI(void); +void ISR_AIC(void); +/********************************** Main routine ************************************/ +void main(){ + // initialize board and the audio port + init_hardware(); + + /* initialize hardware interrupts */ + init_HWI(); + + /* loop indefinitely, waiting for interrupts */ + while(1) {}; +} + +/********************************** init_hardware() **********************************/ +void init_hardware() +{ + // Initialize the board support library, must be called first + DSK6713_init(); + + // Start the AIC23 codec using the settings defined above in config + H_Codec = DSK6713_AIC23_openCodec(0, &Config); + + /* Function below sets the number of bits in word used by MSBSP (serial port) for + receives from AIC23 (audio port). We are using a 32 bit packet containing two + 16 bit numbers hence 32BIT is set for receive */ + MCBSP_FSETS(RCR1, RWDLEN1, 32BIT); + + /* Configures interrupt to activate on each consecutive available 32 bits + from Audio port hence an interrupt is generated for each L & R sample pair */ + MCBSP_FSETS(SPCR1, RINTM, FRM); + + /* These commands do the same thing as above but applied to data transfers to + the audio port */ + MCBSP_FSETS(XCR1, XWDLEN1, 32BIT); + MCBSP_FSETS(SPCR1, XINTM, FRM); +} + +/********************************** init_HWI() **************************************/ +void init_HWI() +{ + IRQ_globalDisable(); // Globally disables interrupts + IRQ_nmiEnable(); // Enables the NMI interrupt (used by the debugger) + IRQ_map(IRQ_EVT_RINT1,4); // Maps an event to a physical interrupt + IRQ_enable(IRQ_EVT_RINT1); // Enables the event + IRQ_globalEnable(); // Globally enables interrupts +} + +/******************** INTERRUPT SERVICE ROUTINE ***********************/ +void ISR_AIC() +{ + // temporary variable used to output values from function + float wave_out, wave; + + wave = sinegen(); + wave_out = wave < 0 ? wave : -wave; + + mono_write_16Bit((short)(wave_out*32767)); +} diff --git a/lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30e6f06bdd0100181ce89bcacea45786 b/lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30e6f06bdd0100181ce89bcacea45786 new file mode 100644 index 0000000..7165b14 --- /dev/null +++ b/lab4/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30e6f06bdd0100181ce89bcacea45786 @@ -0,0 +1,197 @@ +;; Do *not* directly modify this file. It was +;; generated by the Configuration Tool; any +;; changes risk being overwritten. + +;; INPUT dsp_bios_.cdb + +;; CONFIGURATION/VERSION INFORMATION + .asg "dsp_bios_.cdb", VERS$CDB + .asg ";;;", VERS$CDBRELATIVEPATH + .asg "dsp_bios_cfg", VERS$CFG + .asg "@(#)*** xdcutils-e03", VERS$TREE + +;; EXTERNAL REFERENCES + .global HWI_unused + .global RESERVED + .global _FXN_F_nop + .global segment_name + .global _CLK_start6x + .global FXN_F_nop + .global FXN_F_zero + .global HWI_F_dispatch + .global CLK_F_frete + .global CLK_F_rete + .global CLK_F_getltime + .global CLK_F_isr + .global CLK_A_TABBEG + .global CLK_F_getfhtime + .global CLK_F_getshtime + .global PRD_F_tick + .global PRD_F_swi + .global _KNL_tick + .global LNK_F_dataPump + .global RTA_F_dispatch + .global _HSRTDX_xmt + .global _HSRTDX_rec + .global _RTDX_Poll + .global GBL_stackbeg + .global _c_int00 + .global SWI_F_exec + .global SWI_F_run + .global GBL_NULL + .global __HOOK_doCreate + .global __HOOK_doDelete + .global __HOOK_doExit + .global __HOOK_doSwitch + .global __HOOK_doReady + .global null + .global _IDL_loop + .global IDL_F_loop + .global _KNL_run + .global IDL_F_stub + .global IDL_F_calibrate + .global IDL_F_busy + .global _UTL_doPutc + .global _UTL_doAbort + .global _UTL_doError + .global _UTL_halt + .global _SEM_create + .global _SEM_delete + .global _SEM_pend + .global _SEM_post + .global _DIO_cbStaticFxns + .global _DIO_tskStaticFxns + .global _DIO_cbDynamicFxns + .global _DIO_tskDynamicFxns + .global _DIO_init + .global _DGN_printFloat + .global _DGN_printHex + .global _DGN_printInt + .global DGN_CONST + .global DGN_RAND + .global DGN_SINE + .global DGN_USER + .global _DGN_FXNS + .global _DHL_notify + .global _DHL_FXNS + .global _DPI_FXNS + .global _GBL_setPLLto225MHz + .global _ISR_AIC + +;; MODULE PARAMETERS +GBL$ .set 1 +GBL_ROM .set 00H +GBL_PROCID .set 00H +GBL_CLKIN .set 04e20H +GBL_FREQ .set 036ee8H +GBL_DSPTYPE .set 03eH +GBL_DSPSUBTYPE .set 01a39H +GBL_CLKTYPE .set 01770H +GBL_BIGENDIAN .set 00H +GBL_USERINIT .set 01H +GBL_ENABLEINST .set 01H +GBL_CACHE .set 00H +GBL_L2CONFIGURE .set 01H +GBL_L2MODE .set 00H +GBL_L2PRIORITY .set 00H +GBL_L2MARMASK .set 01H +GBL_SUPPORTCSL .set 00H +GBL_TRCMASKVALUE .set 0dbefH +GBL_CALLCSLCFGINIT .set 01H +GBL_C641XL2PRIORITY .set 00H +GBL_L2MARMASK1 .set 00H +GBL_L2MARMASK2 .set 00H +GBL_L2MARMASK3 .set 00H +GBL_L2MARMASK4 .set 00H +GBL_L2MARMASK5 .set 00H +GBL_L2CONFIGALLOC .set 00H +GBL_L2ALLOC .set 02226H +MEM$ .set 1 +MEM_gNumHeap .set 00H +MEM_USEMPC .set 00H +OBJ$ .set 0 +BUF$ .set 0 +BUF_ENABLED .set 01H +POOL$ .set 0 +POOL_USEPOOL .set 00H +CLK$ .set 1 +CLK_INTBIT .set 04000H +CLK_REGS .set 01940000H +CLK_TIMERNUM .set 00H +CLK_USETIMER .set 01H +CLK_MICROSECS .set 03e8H +CLK_TCR .set 020H +CLK_TDDR .set 00H +CLK_TDDRHIGH .set 00H +CLK_PRD .set 0dbbaH +CLK_PRDHIGH .set 00H +CLK_COUNTSPMS .set 0dbbaH +CLK_COUNTSPMSHIGH .set 00H +CLK_CALDIV .set 01H +CLK_CALMULT .set 04H +CLK_HTIMEDIV .set 01H +CLK_HTIMEMULT .set 04H +CLK_LTIMEDIV .set 01H +CLK_LTIMEMULT .set 036ee8H +CLK_HTIMEPERLTIME .set 0dbbaH +PRD$ .set 1 +PRD_SCALAR .set 04000H +RTDX$ .set 1 +RTDX_USERTDX .set 01H +RTDX_USERTEXECUTION .set 00H + .asg "JTAG", RTDX_RTDXTYPE +RTDX_BUFMEMSIZE .set 0408H +HST$ .set 1 +HST_RTDX .set 01H +HST_DSM .set 00H +HST_NONE .set 00H +HST_MAXFRAMESET .set 040H +HST_MAXFRAMEALLOWED .set 0ffH +HST_DSMMEMSIZE .set 0400H +HWI$ .set 1 +HWI_ZEROTAB .set 01H +HWI_GENERATE_RESET_VEC .set 00H +HWI_POLARITYMASK .set 00H +HWI_INTRMULTLOW .set 0310718afH +HWI_INTRMULTHIGH .set 082039a3H +HWI_CFGDISPATCHED .set 04018H +SWI$ .set 1 +TSK$ .set 1 +TSK_STACKSIZE .set 0400H +TSK_PRIORITY .set 01H +TSK_SWITCHFXN .set 00H +TSK_READYFXN .set 00H +TSK_NUM_HOOKS .set 00H +IDL$ .set 1 +IDL_USECLKIDLTIME .set 01H +IDL_CALIBRERROR .set 06H +ISRC$ .set 1 +LOG$ .set 1 +LOG_ENABLED .set 01H +PIP$ .set 0 +PIP_gNumEmbed .set 02H +PIP_gNextId .set 00H +PIP_OBJSIZE .set 064H +SEM$ .set 0 +MBX$ .set 0 +QUE$ .set 1 +LCK$ .set 1 +STS$ .set 1 +SYS$ .set 1 +SIO$ .set 0 +GIO$ .set 0 +DEV$ .set 0 +UDEV$ .set 0 +DIO$ .set 0 +DIO_STATIC .set 00H +DIO_NUMTSKBASE .set 00H +DIO_NUMSWIBASE .set 00H +DGN$ .set 0 +DHL$ .set 0 +DHL_gChannelsAvailable .set 00H +DPI$ .set 0 +MSGQ$ .set 0 +MSGQ_USEMSGQ .set 00H +HOOK$ .set 0 +HOOK_KNLID .set 00H +DEV$NUMDEVICES .set 0 -- cgit