TP1 DSP
TP1 DSP
TP1 DSP
Compte rendu du
TP1 :DSP
Présentation et prise en mains de l’outil de développement
CCS V 5.3 et Utilisation des Entrées / Sorties
GPIO DSP TMS320F28335
Par :
Nom et Prénom : LADJOUZI Meriem
Section / Sgrp : ESE / Sgrp 02
Matricule : 191931069525
Nom et Prénom : NOUIOUA Maroua
Section / Sgrp : ESE / Sgrp 02
Matricule : 191931069055
2022/2023
Proposition 1:
Proposition 2:
void main(void)
{
unsigned int i;
InitSystem(); // Basic Core Initialization
while(1)
{
for(i=0;i<6;i++)
{
switch (i)
{
case 0:
{
GpioDataRegs.GPASET.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 1:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPASET.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
2
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 2:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBSET.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 3:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBSET.bit.GPIO49 = 1;
break;
}
case 4:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBSET.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 5:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPASET.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
default:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
} // end switch
delay_loop(1000000);
} // end for
} // end while(1)
} // end main
void Gpio_select(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.all = 0; // GPIO15 ... GPIO0 = General Puropse I/O
GpioCtrlRegs.GPAMUX2.all = 0; // GPIO31 ... GPIO16 = General Purpose I/O
GpioCtrlRegs.GPBMUX1.all = 0; // GPIO47 ... GPIO32 = General Purpose I/O
GpioCtrlRegs.GPBMUX2.all = 0; // GPIO63 ... GPIO48 = General Purpose I/O
GpioCtrlRegs.GPCMUX1.all = 0; // GPIO79 ... GPIO64 = General Purpose I/O
GpioCtrlRegs.GPCMUX2.all = 0; // GPIO87 ... GPIO80 = General Purpose I/O
GpioCtrlRegs.GPADIR.all = 0;
GpioCtrlRegs.GPADIR.bit.GPIO9 = 1; // peripheral explorer: LED LD1 at GPIO9
GpioCtrlRegs.GPADIR.bit.GPIO11 = 1; // peripheral explorer: LED LD2 at GPIO11
void InitSystem(void)
{
EALLOW;
SysCtrlRegs.WDCR = 0x0028; // Watchdog enabled, 4.3milliseconds
SysCtrlRegs.SCSR = 0x0000; // Watchdog will cause a reset
SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
SysCtrlRegs.PLLCR.bit.DIV = 10; // 30MHz * 10 / 2 = 150 MHz SYSCLK
SysCtrlRegs.HISPCP.all = 0x0001; // SYSCLK / 2
SysCtrlRegs.LOSPCP.all = 0x0002; // SYSCLK / 4
SysCtrlRegs.PCLKCR0.all = 0x0000;
SysCtrlRegs.PCLKCR1.all = 0x0000;
SysCtrlRegs.PCLKCR3.all = 0x0000;
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;
EDIS;
}
//===========================================================================
// End of SourceCode.
//===========================================================================
Explication du Programme:
On déclare 3 fonctions :
-GPIO_select : pour configuré les broches
-InitSystem: pour le systéme (configuré la fréquence 150 MHZ de DSP)
-delay_loop: pour créer une temporisation
- La fonction principale void main
-Pour le while (1) c’est une boucle qui va tourner a l’infinie et la variable counter va
s’incrémenter chaque 100 ms
-Pour la 1 er condition c’est pour allumer LED ,on utilise le GPxCLEAR pou mettre a 0 et
je remplace x par A donc mettre GPIO9 a l’état logique 0v (état bas) donc LED
s’éteindra ,et c’est la même chose pour les autres broches connecter avec les 3 LED qui
restent
-Pour la période 100 ms les LEDS s’allument s’excessivement(l’une aprés l’autre)
- On met dir a 0 donc il commence a s’incrémenter jusqu’a qu’il arrive a LED8 ici donc il
va s’inverser car les LEDS sont 1,2,4,8.
5
Conclusion:
Donc a la fin on aura un espace de jeux de lumière des LED qui s’éteindrent et qui
s’allument