Urgent: Code for Code Composer Studio to DSK C6711

Status
Not open for further replies.

frat

Newbie level 1
Joined
Apr 13, 2010
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Malaysia
Activity points
1,326
Guys and girls,

Our project is to develop a code for the CCS and load into the DSk and run it. We need to manipulate the speed of the signal. We've tried so many hours in the lab but it can't seem to work. PLEASE HELP!!

We tried with the Audio Daughter card as well but we couldn't do it.

This is the code


/**********************************************************************
* FILENAME
* codec_poll1.c
*
* DESCRIPTION
* Polling version of simple codec test

#include <stdio.h>
#include <c6x.h>
#include "c6211dsk.h"

/*********************************************************
* Prototypes
*********************************************************/

void codec_playback();
int McBSP1_read();
void McBSP1_init();
void McBSP1_write(int out_data);

int mcbsp0_read();
void mcbsp0_init();
void mcbsp0_write(int out_data);

/*********************************************************
* Declarations
*********************************************************/

short Input_Data;
short Output_Data;
short Prev_Output;
short ad535inp[256]; // 8kHz sampling
short pcm3003inp[512]; // 48kHz sampling
int ttlctr, bufferctr;
int bufferlength = 512;

int main()
{

/* dsp and periphiral initialization */
CSR=0x100; /* disable all interrupts */
IER=1; /* disable all interrupts except NMI */
ICR=0xffff; /* clear all pending interrupts */

*(unsigned volatile int *)EMIF_GCR = 0x3300; /* EMIF global control */
*(unsigned volatile int *)EMIF_CE1 = 0xffffff03; /* EMIF CE1 control, 8bit async */

McBSP1_init();
mcbsp0_init();
codec_playback();

return(0);

}

void McBSP1_init()
{
/* set up McBSP1 */
*(unsigned volatile int *)McBSP1_SPCR = 0; /* reset serial port */
*(unsigned volatile int *)McBSP1_PCR = 0x000C; /* set pin control reg.; */
*(unsigned volatile int *)McBSP1_RCR = 0x80400040; /* 0bit delay,set rx control reg. one 16 bit data/frame */
*(unsigned volatile int *)McBSP1_XCR = 0x80400040; /* 0bit delay, set tx control reg. one 16 bit data/frame */
*(unsigned volatile int *)McBSP1_DXR = 0; /* write first word */
*(unsigned volatile int *)McBSP1_SPCR = 0x10001; /* setup SP control reg., take out of reset, w RJUST=0; */

}

void McBSP1_write(int out_data)
{
int temp;
temp = *(unsigned volatile int *)McBSP1_SPCR & 0x20000;
while ( temp == 0)
{
temp = *(unsigned volatile int *)McBSP1_SPCR & 0x20000;
}
// *(unsigned volatile int *)McBSP1_DXR = out_data;
*(volatile int *)McBSP1_DXR = out_data;
}

int McBSP1_read()
{
int temp;
temp = *(unsigned volatile int *)McBSP1_SPCR & 0x2;
while ( temp == 0)
{
temp = *(unsigned volatile int *)McBSP1_SPCR & 0x2;
}
// temp = *(unsigned volatile int *)McBSP1_DRR;
temp = *(volatile int *)McBSP1_DRR;
return temp;
}


void mcbsp0_init()
{
/* set up McBSP0 */
*(unsigned volatile int *)McBSP0_SPCR = 0; /* reset serial port */
*(unsigned volatile int *)McBSP0_PCR = 0; /* set pin control reg.; */
*(unsigned volatile int *)McBSP0_RCR = 0x10040; /* set rx control reg. one 16 bit data/frame */
*(unsigned volatile int *)McBSP0_XCR = 0x10040; /* set tx control reg. one 16 bit data/frame */
*(unsigned volatile int *)McBSP0_DXR = 0;
*(unsigned volatile int *)McBSP0_SPCR = 0x12001; /* setup SP control reg.; */

// htw - AD535 setup
// set up control register 3 for S/W reset
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(1);
mcbsp0_read();
mcbsp0_write(0x0386);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();

// set up control register 3 for mic input
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(1);
mcbsp0_read();
mcbsp0_write(0x0306);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();

//set up control register 4
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(1);
mcbsp0_read();
mcbsp0_write(0x0400);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();

// set up control register 5
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
mcbsp0_write(1);
mcbsp0_read();
mcbsp0_write(0x0502);
mcbsp0_read();
mcbsp0_write(0);
mcbsp0_read();
}

void mcbsp0_write(int out_data)
{
int temp;
temp = *(unsigned volatile int *)McBSP0_SPCR & 0x20000;
while ( temp == 0)
{
temp = *(unsigned volatile int *)McBSP0_SPCR & 0x20000;
}
*(unsigned volatile int *)McBSP0_DXR = out_data;
}

int mcbsp0_read()
{
int temp;
temp = *(unsigned volatile int *)McBSP0_SPCR & 0x2;
while ( temp == 0)
{
temp = *(unsigned volatile int *)McBSP0_SPCR & 0x2;
}
temp = *(unsigned volatile int *)McBSP0_DRR;
return temp;
}

void codec_playback()
{

bufferctr=0;
Prev_Output = 0;
while(1) /* play forever*/
{
//Input_Data = mcbsp0_read();
Input_Data = mcbsp0_read();

Output_Data = Input_Data;

/* For graph view only*/
//ad535inp[bufferctr] = Input_Data;
//pcm3003inp[bufferctr] = Input_Data;

//mcbsp0_write(Output_Data);
McBSP1_write(Output_Data&0xffff);

bufferctr++;

if (bufferctr == bufferlength)
{
bufferctr = 0;
}
}

}


// Code snippet to simulate subsampling
/*if ((bufferctr%2) == 0)
{ McBSP1_write (Output_Data);
McBSP1_write (Output_Data); }
else
{ McBSP1_write (Prev_Output);
McBSP1_write (Prev_Output); }

Prev_Output = Output_Data;*/



But we've no idea how to edit to change the speed

Please help
Thanks loads!!
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…