Académique Documents
Professionnel Documents
Culture Documents
Introduction :
Découverte de Code Composer Studio DSP TMS320C Objectifs du TP Le but de ces manipulations est de découvrir
l’environnement de programmation CCS (Code Composer Studio) et la carte de développement TMS320C5416. Un accent
sera mis sur la compréhension de l’organisation de la mémoire interne au DSP.
Vous avez chargé sur la carte votre e.ercice modifié et vous pouvez le tester.
Pour recréer l'environnement de travail et analyser l'exercice
Faire du Pas à pas en utilisant l’icône {}
Mettre un point d’arrêt et un probe point (click droit)sur l’instruction
BC…loop,AC1 !=0 .
Faire Debug /Animate
Durant le développement ou le test des programmes, on doit souvent contrôler la valeur d'une variable pendant
l'exécution du programme. Ceci peut être réalisé en utilisant des points d'arrêt (BREAKPOINT) et des « Watch
Windows ».
Les fonctions :
Pour ajouter une simple fonction en C qui fait la somme des valeurs, nous pouvons simplement passer le
pointeur par l'alignement de valeur et avoir un retour de nombre entier. Pour l'instant, considérant que nous
n'utilisons pas l'assembleur, ce qui nous concerne n'est pas comment les variables sont additionnées, mais plutôt
combien de temps il faut pour exécuter l'opération.
#include <math.h>
La carte DSK :
Uint32 fs=DSK6713_AIC23_FREQ_32KHZ; // set sampling rate : 8k, 16k, 32k, 44.1k, 48k, 96k
//Uint32 fs=DSK6713_AIC23_FREQ_16KHZ;
//Uint32 fs=DSK6713_AIC23_FREQ_32KHZ;
#define LEFT 0
#define RIGHT 1
#define PI 3.1415926
/* global variables */
int FILT=0,CIRC=0;
int n=1 ;
/* prototypes */
void comm_intr();
void output_sample(int);
void output_left_sample(short);
void output_right_sample(short);
Uint32 input_sample();
short input_left_sample();
short input_right_sample();
sample_data=AIC23_data.channel[RIGHT];
en=0.0; // to remove
en=sin(2.0*PI*(float)n*1000.0/8000.0)+sin(2.0*PI*(float)n*1400.0/8000.0); // to remove
n++ ; // to remove
if (FILT==1){
sn=filtrage_circ(h,e,&p,en);
sn=filtrage_decal(h,e,en);
else{
sn=en; // nothing to do !
sample_data=(short)sn;
output_right_sample(sample_data);
return;
}
// complete the "..." in the following function
int i;
float y=0.0;
**p=x;
// scalar product
return y;
int i;
float *p;
float y=0.0;
p=e; // or p=@e[0]
*p=x; // or e[0]=x
return y;
void main()
int i;
for (i=0;i<=M;i++){ //init taps delay
e[i]=0.0;
comm_intr(); //init DSK, codec, McBSP (bus between CAN/CNA and CPU)
La carte SIM :
#include <math.h>
Uint32 fs=DSK6713_AIC23_FREQ_32KHZ; // set sampling rate : 8k, 16k, 32k, 44.1k, 48k, 96k
//Uint32 fs=DSK6713_AIC23_FREQ_16KHZ;
//Uint32 fs=DSK6713_AIC23_FREQ_32KHZ;
#define LEFT 0
#define RIGHT 1
#define PI 3.1415926
/* global variables */
int FILT=0,CIRC=0;
int n=1 ;
/* prototypes */
void comm_intr();
void output_sample(int);
void output_left_sample(short);
void output_right_sample(short);
Uint32 input_sample();
short input_left_sample();
short input_right_sample();
sample_data=AIC23_data.channel[RIGHT];
en=0.0; // to remove
en=sin(2.0*PI*(float)n*1000.0/8000.0)+sin(2.0*PI*(float)n*1400.0/8000.0); // to remove
n++ ; // to remove
if (FILT==1){
sn=filtrage_circ(h,e,&p,en);
sn=filtrage_decal(h,e,en);
else{
sn=en; // nothing to do !
sample_data=(short)sn;
output_right_sample(sample_data);
return;
}
// complete the "..." in the following function
int i;
float y=0.0;
**p=x;
// scalar product
return y;
int i;
float *p;
float y=0.0;
p=e; // or p=@e[0]
*p=x; // or e[0]=x
return y;
void main()
int i;
for (i=0;i<=M;i++){ //init taps delay
e[i]=0.0;
comm_intr(); //init DSK, codec, McBSP (bus between CAN/CNA and CPU)
Reponse impultionnel
Réponse fréquentielle