64 lines
1.5 KiB
C
Executable file
64 lines
1.5 KiB
C
Executable file
|
|
|
|
#include "DriverJeuLaser.h"
|
|
|
|
extern int PeriodeSonMicroSec;
|
|
|
|
extern void CallBackSon(void);
|
|
|
|
extern int TableauIndex;
|
|
|
|
extern int LongeurSon;
|
|
|
|
int main(void)
|
|
{
|
|
|
|
|
|
// ===========================================================================
|
|
// ============= INIT PERIPH (faites qu'une seule fois) =====================
|
|
// ===========================================================================
|
|
|
|
// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
|
|
CLOCK_Configure();
|
|
|
|
|
|
int nbCycles = PeriodeSonMicroSec * 72; //PeriodeSonMicroSec * 0.000001 * 72 000 000
|
|
|
|
Timer_1234_Init_ff( TIM4, nbCycles);
|
|
|
|
//avant de config le timer on va mettre la taille de l'index supérieur à la taille du fichier audio
|
|
//comme ça, le logiciel ne va pas jouer le son de suite
|
|
|
|
TableauIndex = LongeurSon;
|
|
|
|
|
|
Active_IT_Debordement_Timer( TIM4, 2, CallBackSon );
|
|
|
|
PWM_Init_ff( TIM3, 3, 720); //initialisation de la PWM sur canal 3 timer 3
|
|
|
|
//on met période tick à 720 sur une clock à 72 Mhz
|
|
|
|
//période de 720/72.10^6 = 72 / 72.10^5 = 1 / 10^5 = 10^-5 = 10 µs
|
|
|
|
// donc fréquence de 10^5 Hz = 100 kHz
|
|
|
|
GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
|
|
|
|
|
|
|
|
//on l'appelle en assembleur
|
|
//PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_ticks);
|
|
|
|
//============================================================================
|
|
|
|
|
|
while (1)
|
|
{
|
|
}
|
|
}
|
|
|
|
void jouerSon() {
|
|
//on remet l'index du tableau à zéro, du coup ça va jouer une fois le son
|
|
TableauIndex = 0;
|
|
}
|
|
|