#include "DriverJeuLaser.h" extern int DFT_ModuleAucarre_Reel(short int * Signal64ech, char k); extern int DFT_ModuleAucarre_Im(short int * Signal64ech, char k); extern int DFT_ModuleAuCarre (short int * Signal64ech, char k); extern short int LeSignal[64]; //int DFT_ModuleAuCarre_C( short int * Signal64ech, char k){ // int somme_cos, somme_sin; // for(int n = 0; n<63; n++){ // somme_cos += TabCos[n]; // somme_sin += TabSin[n]; // } // int somme_k = (int) (long long) somme_cos* (int) (long long) somme_cos + (int) (long long) somme_sin* (int) (long long) somme_sin; // return somme_k; //} int Resultat[64]; short dma_buf[64]; void callback_Systick(){ Start_DMA1(64); Wait_On_End_Of_DMA1(); Stop_DMA1; for (int k =0; k <64; k++){ Resultat[k] = DFT_ModuleAuCarre(dma_buf,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(); Systick_Period_ff(360000); Systick_Prio_IT(2, callback_Systick); SysTick_On; SysTick_Enable_IT; Init_TimingADC_ActiveADC_ff( ADC1, 72 ); Single_Channel_ADC( ADC1, 2 ); Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 ); Init_ADC1_DMA1( 0, dma_buf); //============================================================================ while (1) { } }