#include "DriverJeuLaser.h" #include "GestionSon.h" #include "Affichage_Valise.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[6]; short dma_buf[64]; int Score [6] = { 0, 0, 0, 0, 0, 0}; int Fre [6] = {17, 18, 19, 20, 23, 24}; int Seuil = 2097152; int buff; void callback_Systick(){ Start_DMA1(64); Wait_On_End_Of_DMA1(); Stop_DMA1; for (int k =0; k <6; k++){ buff = DFT_ModuleAuCarre(dma_buf,Fre[k]); Resultat[k] = buff; } for (int k=0; k<6; k++) { if (Resultat[k]>Seuil) { Score [k] ++; StartSon (); } } } void callback_Affichage () { Prepare_Afficheur (1, Score[1]); Prepare_Afficheur (2, Score[2]); Prepare_Afficheur (3, Score[3]); Prepare_Afficheur (4, Score[4]); Mise_A_Jour_Afficheurs_LED(); } 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(3,callback_Systick); SysTick_On; SysTick_Enable_IT; Timer_1234_Init_ff( TIM1, 91*72); Active_IT_Debordement_Timer( TIM1, 8, callback_Affichage ); Timer_1234_Init_ff( TIM3, 91*72); PWM_Init_ff( TIM3, 3, 720); GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL); Timer_1234_Init_ff( TIM4, 91*72); Active_IT_Debordement_Timer( TIM4, 5, CallbackSon ); 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) { } }