DFT reel terminer
This commit is contained in:
parent
d6e97b726b
commit
db3b79a29b
4 changed files with 1391 additions and 1364 deletions
|
@ -45,6 +45,7 @@ Sommation
|
||||||
add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause de 64 additions
|
add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause de 64 additions
|
||||||
|
|
||||||
add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
|
add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
|
||||||
|
and r7, 63 ;modulo 64 pour ne pas depasser la taille du tableau
|
||||||
add r4, r4, #1 ; incrémentation de l'indice n
|
add r4, r4, #1 ; incrémentation de l'indice n
|
||||||
cmp r4 ,#64 ; comparaison de n à 64
|
cmp r4 ,#64 ; comparaison de n à 64
|
||||||
blt Sommation ; si n<64 on recommence la boucle
|
blt Sommation ; si n<64 on recommence la boucle
|
||||||
|
|
|
@ -2,10 +2,23 @@
|
||||||
|
|
||||||
#include "DriverJeuLaser.h"
|
#include "DriverJeuLaser.h"
|
||||||
|
|
||||||
|
|
||||||
extern short LeSignal;
|
extern short LeSignal;
|
||||||
extern int DFT_ModuleAuCarre(short int *Signal64ech, char k);
|
extern int DFT_ModuleAuCarre(short int *Signal64ech, char k);
|
||||||
|
|
||||||
int S[64];
|
int S[64];
|
||||||
|
short dma_buf[64]; //Pour stocker les valeurs prises par l'adc
|
||||||
|
|
||||||
|
void Callback_Systick (){
|
||||||
|
|
||||||
|
Start_DMA1(64); //demarrage de l'echantillage de 64 points
|
||||||
|
Wait_On_End_Of_DMA1();
|
||||||
|
Stop_DMA1;
|
||||||
|
|
||||||
|
for (int k= 0; k < 64; ++k) {
|
||||||
|
S[k] = DFT_ModuleAuCarre( dma_buf, k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
@ -18,12 +31,24 @@ int main(void)
|
||||||
// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
|
// Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
|
||||||
CLOCK_Configure();
|
CLOCK_Configure();
|
||||||
|
|
||||||
|
//configuration du timer Systick
|
||||||
|
Systick_Period_ff( 360000 ); // a/(72*10**6) =5 ms
|
||||||
|
Systick_Prio_IT( 2, Callback_Systick );
|
||||||
|
SysTick_On ;
|
||||||
|
SysTick_Enable_IT ;
|
||||||
|
|
||||||
|
//configuration pour ADC1 et DMA
|
||||||
|
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 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (int k= 0; k < 64; ++k) {
|
|
||||||
|
/*or (int k= 0; k < 64; ++k) {
|
||||||
S[k] = DFT_ModuleAuCarre(&LeSignal, k);
|
S[k] = DFT_ModuleAuCarre(&LeSignal, k);
|
||||||
}
|
} */
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ Sommation
|
||||||
add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause de 64 additions
|
add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause de 64 additions
|
||||||
|
|
||||||
add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
|
add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
|
||||||
|
and r7, 63 ;modulo 64 pour ne pas depasser la taille du tableau
|
||||||
add r4, r4, #1 ; incrémentation de l'indice n
|
add r4, r4, #1 ; incrémentation de l'indice n
|
||||||
cmp r4 ,#64 ; comparaison de n à 64
|
cmp r4 ,#64 ; comparaison de n à 64
|
||||||
blt Sommation ; si n<64 on recommence la boucle
|
blt Sommation ; si n<64 on recommence la boucle
|
||||||
|
|
Loading…
Reference in a new issue