#include "etat.h" #include "DriverJeuLaser.h" #define Periode_en_Tck PeriodeSonMicroSec*72 //4536 // T/T0 ici 63u #define Periode_PWM_en_Tck 720 // 10u // plus ou moins 6.3u extern short Son; extern int LongueurSon; extern int PeriodeSonMicroSec; void timer_callback(void); type_etat etat; int main(void) { // Initialisation de taille et son pour le variable etat etat.taille = LongueurSon; etat.son = &Son; etat.periode_ticks = PeriodeSonMicroSec; // Activation de la PLL qui multiplie la fréquence du quartz par 9 CLOCK_Configure(); // Config port PB1 pour être utilisé en sortie GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL); // Config TIM3-CH3 en mode PWM etat.resolution = PWM_Init_ff(TIM3, 3, Periode_PWM_en_Tck); // Initialisation du timer 4 // Periode_en_Tck doit fournir la duréé interruptique; // exprimée en période Tck de l'horloge principale du STM32 (72Mhz) Timer_1234_Init_ff(TIM4, Periode_en_Tck); // enregistrement de la fonction de traitement de l'interruption timer // avec la priorité 2, timer_callback est l'adresse de cette fonction, a crée en asm, // cette fonction doit être conforme à l'AACPS Active_IT_Debordement_Timer(TIM4, 2, timer_callback); //Lancement du timer Run_Timer(TIM4); Run_Timer(TIM3); while (1) { } }