// AFONSO Perrine LARTIGUE Auriane #include "gassp72.h" #include "etat.h" #define Periode_en_Tck PeriodeSonMicroSec*72 #define Periode_PWM_en_Tck 360 extern void timer_callback(void); extern int PeriodeSonMicroSec; extern short Son ; extern int LongueurSon ; type_etat etat; int main(void) { //initialisation variable etat etat.periode_ticks = PeriodeSonMicroSec ; etat.taille = LongueurSon; etat.son = &Son ; // 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); etat.resolution = PWM_Init_ff( TIM3 , 3 , Periode_PWM_en_Tck ); // initialisation du timer 4 // Periode_en_Tck doit fournir la durée entre interruptions, // exprimée en périodes Tck de l'horloge principale du STM32 (72 MHz) Timer_1234_Init_ff( TIM4, Periode_en_Tck ); // enregistrement de la fonction de traitement de l'interruption timer // ici le 2 est la priorité, timer_callback est l'adresse de cette fonction, a créér en asm, // cette fonction doit être conforme à l'AAPCS Active_IT_Debordement_Timer( TIM4, 2, timer_callback ); // lancement du timer Run_Timer( TIM4 ); Run_Timer (TIM3) ; while (1) { } }