diff --git a/Project.uvoptx b/Project.uvoptx index 5a528a0..e5e1010 100644 --- a/Project.uvoptx +++ b/Project.uvoptx @@ -157,9 +157,9 @@ 0 0 - 59 + 29 1 -
134218250
+
134227768
0 0 0 @@ -168,23 +168,55 @@ 1 .\Src\calcul_dft.s - \\CHTI\Src/calcul_dft.s\59 + \\CHTI\Src/calcul_dft.s\29
1 0 - 28 + 42 1 -
134218196
+
134227652
0 0 0 0 0 1 - .\Src\calcul_dft.s + .\Src\principal.c - \\CHTI\Src/calcul_dft.s\28 + \\CHTI\Src/principal.c\42 +
+ + 2 + 0 + 37 + 1 +
134227626
+ 0 + 0 + 0 + 0 + 0 + 1 + .\Src\principal.c + + \\CHTI\Src/principal.c\37 +
+ + 3 + 0 + 62 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + .\Src\principal.c + +
@@ -203,7 +235,7 @@ 1 10 - 0x08001F30 + 0x20000250 0 @@ -348,18 +380,6 @@ 0 0 - - 3 - 6 - 2 - 0 - 0 - 0 - .\Src\signal.s - signal.s - 0 - 0 - diff --git a/Project.uvprojx b/Project.uvprojx index fcc4948..c44476a 100644 --- a/Project.uvprojx +++ b/Project.uvprojx @@ -338,7 +338,7 @@ --C99 STM32F103xB,USE_FULL_LL_DRIVER - ..\GASSP72 + ../GFSSP72 @@ -417,11 +417,6 @@ 2 .\Src\table_sin_cos.s - - signal.s - 2 - .\Src\signal.s - diff --git a/Src/calcul_dft.s b/Src/calcul_dft.s index fd613db..87b5899 100644 --- a/Src/calcul_dft.s +++ b/Src/calcul_dft.s @@ -4,6 +4,7 @@ export calcul_dft import TabCos import TabSin + ; diff --git a/Src/principal.c b/Src/principal.c index 3733394..b2d35ad 100644 --- a/Src/principal.c +++ b/Src/principal.c @@ -1,18 +1,94 @@ #include "gassp72.h" +#include +#include +#include -extern void timer_callback(void); +#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(short *, int); -int res_dft[64]; +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 k=0; k<64; k++){ - res_dft[k] = calcul_dft(TabSig,k); + 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){ + + } + } diff --git a/Src/signal.s b/Src/signal.s deleted file mode 100644 index 46ce7e5..0000000 --- a/Src/signal.s +++ /dev/null @@ -1,76 +0,0 @@ - AREA Signal, DATA, READONLY - export TabSig -; fonction cosinus, frequence relative 1, phase -45 degres, amplitude max -; valeurs attendues pour k = 1 : -; Re 0x5A82562C env +sqrt(0.5) * 2^31 -; Im 0x5A82562C env +sqrt(0.5) * 2^31 -; M2 0x3FFFCDE5 env 2^30 -; pour 1 < k < 63 -; M2 < 0x0000000F - -TabSig - dcw 0x0da8 ; 0 3496 0.85352 - dcw 0x0e2f ; 1 3631 0.88647 - dcw 0x0ea7 ; 2 3751 0.91577 - dcw 0x0f0e ; 3 3854 0.94092 - dcw 0x0f64 ; 4 3940 0.96191 - dcw 0x0fa8 ; 5 4008 0.97852 - dcw 0x0fd9 ; 6 4057 0.99048 - dcw 0x0ff6 ; 7 4086 0.99756 - dcw 0x0fff ; 8 4095 0.99976 - dcw 0x0ff6 ; 9 4086 0.99756 - dcw 0x0fd9 ; 10 4057 0.99048 - dcw 0x0fa8 ; 11 4008 0.97852 - dcw 0x0f64 ; 12 3940 0.96191 - dcw 0x0f0e ; 13 3854 0.94092 - dcw 0x0ea7 ; 14 3751 0.91577 - dcw 0x0e2f ; 15 3631 0.88647 - dcw 0x0da8 ; 16 3496 0.85352 - dcw 0x0d13 ; 17 3347 0.81714 - dcw 0x0c72 ; 18 3186 0.77783 - dcw 0x0bc5 ; 19 3013 0.73560 - dcw 0x0b10 ; 20 2832 0.69141 - dcw 0x0a53 ; 21 2643 0.64526 - dcw 0x0990 ; 22 2448 0.59766 - dcw 0x08c9 ; 23 2249 0.54907 - dcw 0x0800 ; 24 2048 0.50000 - dcw 0x0737 ; 25 1847 0.45093 - dcw 0x0670 ; 26 1648 0.40234 - dcw 0x05ad ; 27 1453 0.35474 - dcw 0x04f0 ; 28 1264 0.30859 - dcw 0x043b ; 29 1083 0.26440 - dcw 0x038e ; 30 910 0.22217 - dcw 0x02ed ; 31 749 0.18286 - dcw 0x0258 ; 32 600 0.14648 - dcw 0x01d1 ; 33 465 0.11353 - dcw 0x0159 ; 34 345 0.08423 - dcw 0x00f2 ; 35 242 0.05908 - dcw 0x009c ; 36 156 0.03809 - dcw 0x0058 ; 37 88 0.02148 - dcw 0x0027 ; 38 39 0.00952 - dcw 0x000a ; 39 10 0.00244 - dcw 0x0000 ; 40 0 0.00000 - dcw 0x000a ; 41 10 0.00244 - dcw 0x0027 ; 42 39 0.00952 - dcw 0x0058 ; 43 88 0.02148 - dcw 0x009c ; 44 156 0.03809 - dcw 0x00f2 ; 45 242 0.05908 - dcw 0x0159 ; 46 345 0.08423 - dcw 0x01d1 ; 47 465 0.11353 - dcw 0x0258 ; 48 600 0.14648 - dcw 0x02ed ; 49 749 0.18286 - dcw 0x038e ; 50 910 0.22217 - dcw 0x043b ; 51 1083 0.26440 - dcw 0x04f0 ; 52 1264 0.30859 - dcw 0x05ad ; 53 1453 0.35474 - dcw 0x0670 ; 54 1648 0.40234 - dcw 0x0737 ; 55 1847 0.45093 - dcw 0x0800 ; 56 2048 0.50000 - dcw 0x08c9 ; 57 2249 0.54907 - dcw 0x0990 ; 58 2448 0.59766 - dcw 0x0a53 ; 59 2643 0.64526 - dcw 0x0b10 ; 60 2832 0.69141 - dcw 0x0bc5 ; 61 3013 0.73560 - dcw 0x0c72 ; 62 3186 0.77783 - dcw 0x0d13 ; 63 3347 0.81714 - end