grpC_Nguyen_Zhang/soft/PjtKEIL_StepSon/Src/principal_pwm.c

48 lines
1.2 KiB
C

#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)
{
}
}