forked from acco/chti23
48 lines
1.2 KiB
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)
|
|
{
|
|
}
|
|
}
|
|
|