#include "gassp72.h" #include #include #include #define taille 6 #define SYSTICK_PER 360000 // (360000 ticks équivaut à 5ms) extern short TabSig[]; int etat = 0x00020000; extern int calcul_carre(int); extern int calcul_dft(unsigned short *, int); int res_dft = 0; unsigned short dma_buf[64]; int compteurs[taille]; int scores[taille]; int k_values[] = {17,18,19,20,23,24}; int M2TIR = 985507; void checkCounter(void){ for(int i=0; i M2TIR){ compteurs[i]++; }else{ compteurs[i] = 0; } } checkCounter(); } int main(void) { for(int i=0; i<6; i++){ compteurs[i] = 0; scores[i] = 0 ; } // activation de la PLL qui multiplie la fréquence du quartz par 9 CLOCK_Configure(); // PA2 (ADC voie 2) = entrée analog GPIO_Configure(GPIOA, 2, INPUT, ANALOG); // PB1 = sortie pour profilage à l'oscillo GPIO_Configure(GPIOB, 1, OUTPUT, OUTPUT_PPULL); // PB14 = sortie pour LED GPIO_Configure(GPIOB, 14, OUTPUT, OUTPUT_PPULL); // activation ADC, sampling time 1us Init_TimingADC_ActiveADC_ff( ADC1, 0x33 ); Single_Channel_ADC( ADC1, 2 ); // Déclenchement ADC par timer2, periode (72MHz/320kHz)ticks Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 ); // Config DMA pour utilisation du buffer dma_buf (a créér) Init_ADC1_DMA1( 0, dma_buf ); // Config Timer, période exprimée en périodes horloge CPU (72 MHz) Systick_Period_ff( SYSTICK_PER ); // enregistrement de la fonction de traitement de l'interruption timer // ici le 3 est la priorité, sys_callback est l'adresse de cette fonction, a créér en C Systick_Prio_IT( 3, sys_callback ); SysTick_On; SysTick_Enable_IT; while(1){ } }