BE-CHTI-2020.2021/PjtKEIL_StepSon/Src/principal.c

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;
}