L3 : SEEC-ETCOM
PA Degryse
I.Principe de travail
a.Principe
Dans chaque Exercice on demande de :
• récupérer un exemple de projet pour le KIT DSK6416
• comprendre chaque ligne de programme source.
• Compiler le code source
• Charger le code binaire dans la cible
• Tester le programme par point d’arrêt, mode run, pas à pas visualiser les
variables etc.
On trouve toutes les informations utiles aussi bien pour la carte DSK que
pour ses fonctions dans le fichier d’aide :
• C:\CCStudio_v3.1\docs\hlp\c6416DSK.hlp
d.Compte rendu de TP
On demande :
• Un compte rendu global pour l’ensemble des TP
• Pour chaque exercice on doit avoir dans le compte rendu.
o La liste et le rôle des variables globales de l’application
o La liste des fonctions écrites et une description de leur rôle.
o Les paramètres d’appel et de retour de chaque fonction.
o L’algorithme de chaque fonction.
o La liste et le rôle de chaque variable locale de chaque fonction.
o Les tests réalisés.
o Les problèmes rencontrés et leurs solutions.
o En annexe le listing du programme source.
void main()
{
/* Initialize the board support library, must be first BSL call */
DSK6416_init();
while(1)
{
/* Toggle LED #0 */
DSK6416_LED_toggle(0);
/* Check DIP switch #3 and light LED #3 accordingly, 0 = switch pressed */
if (DSK6416_DIP_get(3) == 0)
/* Switch pressed, turn LED #3 on */
DSK6416_LED_on(3);
else
/* Switch not pressed, turn LED #3 off */
DSK6416_LED_off(3);
/* Spin in a software delay loop for about 200ms */
DSK6416_waitusec(200000);
}
}
II. Chenillard
a.Chenillard simple
Ecrire un programme qui fait allumer et éteindre les 4 Leds les unes à la suite des autres de
manière permanente.
/*
* ======== tone.c ========
*
* This example uses the AIC23 codec module of the 6416 DSK Board Support Library to generate a 1KHz sine wave on
the audio outputs for 5 seconds.
* The sine wave data is pre-calculated in an array called sinetable. The codec operates at 48KHz by default. Since the
sine wave table has 48 entries per period, each pass through the inner loop takes 1 millisecond. 5000 passes through the
inner loop takes 5 seconds.
*
* Please see the 6416 DSK help file under Software/Examples for more detailed information.
*/
/*
* DSP/BIOS is configured using the DSP/BIOS configuration tool. Settings for this example are stored in a configuration
file called tone.cdb. At compile time, Code Composer will auto-generate DSP/BIOS related files based on these settings.
A header file called tonecfg.h contains the results of the autogeneration and must be included for proper operation. The
name of the file is taken from tone.cdb and adding cfg.h.
*/
#include "tonecfg.h"
/*
* The 6416 DSK Board Support Library is divided into several modules, each of which has its own include file. The file
dsk6416.h must be included in every program that uses the BSL. This example also includes dsk6416_aic23.h because it
uses the AIC23 codec module.
*/
#include "dsk6416.h"
#include "dsk6416_aic23.h"
/*
* main() - Main code routine, initializes BSL and generates tone
*/
void main()
{
DSK6416_AIC23_CodecHandle hCodec;
Int16 msec, sample;
b. Modifications du programme
On garde toujours la même fréquence d’échantillonnage de 48kHz.
Modifier le programme pour :
• Générer un sinus sur les haut-parleurs à 2k Hz pendant 5 secondes.
• Générer un sinus sur les haut-parleurs à 4k Hz pendant 5 secondes.
• Générer un sinus sur les haut-parleurs à 8k Hz pendant 5 secondes.
La fonction «DSK6416_AIC23_read()»
Description Read a 32 bit signed value from the codec data port.
Required Headers dsk6416.h dsk6416_aic23.h
Required Libraries dsk6416bsl.lib
Remarque : Le driver “AIC23” ne permet d'utiliser que les voies “Line In” et “Line out”.
Pour se synchroniser en sortie sur la fréquence d'échantillonage mettre la valeur par
défaut “0x0081” dans la configuration “sample rate control”
Remarques :
o Les données à lire et écrire dans « le CODEC » sont de type 16 bits signés.
o Une multiplication 16*16 en mode signée donne un résultat en 32 bits signés.
o On peut régler le gain du filtre par des décalages à gauche ou à droite.