#include "DriverJeuLaser.h" extern short int LeSignal[]; extern int DFT_ModuleAuCarre( short int * Signal64ech, char k) ; int Dft_x[64]; short int dma_buf[64]; void callback_Systick(void){ //démarrage de la DMA sur 64 échantillons : Start_DMA1(64); //attente de la fin de DMA : Wait_On_End_Of_DMA1(); //arrêter la DMA Stop_DMA1; for (char k=0;k<64;k++){ Dft_x[k]=DFT_ModuleAuCarre(&dma_buf[0],k); } } 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(); //Periode_ticks = 5ms *72 périodes d'horloge à 72MHz donne 1µs=5ms*72Mhz Systick_Period_ff(36E4); //configurer le timer Systick_Prio_IT( 3,callback_Systick ); //lancer le systick SysTick_On ; //lancer le systick SysTick_Enable_IT ; /*ADC*/ //'activer l'ADC1 en indiquant la durée de capture du signal Init_TimingADC_ActiveADC_ff( ADC1, 72 ); //choisir la pin d'entrée PA2 Single_Channel_ADC( ADC1, 2 ); // configurer le timer 2 Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 ); //configurer la DMA Init_ADC1_DMA1( 0, dma_buf ); //============================================================================ while (1) { } }