From d21148a8c8dfb8de9d4964e1c657b2249b666b7b Mon Sep 17 00:00:00 2001 From: Eliot Revol Date: Fri, 14 Apr 2023 18:20:38 +0200 Subject: [PATCH] =?UTF-8?q?DFT=20finis=20et=20d=C3=A9but=20des=20questions?= =?UTF-8?q?=20sur=20la=20DFT=20en=20temps=20r=C3=A9el?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- git/DFT_Signal_Reel/Src/DFT.s | 1 + git/DFT_Signal_Reel/Src/principal.c | 31 +++++++++++++++++++++++++---- git/PjtKEIL_StepDFT/Src/DFT.s | 7 +++++-- git/PjtKEIL_StepDFT/Src/principal.c | 6 +++--- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/git/DFT_Signal_Reel/Src/DFT.s b/git/DFT_Signal_Reel/Src/DFT.s index 4c6c66f..a542221 100644 --- a/git/DFT_Signal_Reel/Src/DFT.s +++ b/git/DFT_Signal_Reel/Src/DFT.s @@ -41,6 +41,7 @@ boucle cmp r2,#63 ldr r6, =TabCos ldr r7, =TabSin ;mul r5, r5, r1 + ldrsh r6,[r6,r5] ldrsh r7,[r7,r5] mul r5, r6, r4 diff --git a/git/DFT_Signal_Reel/Src/principal.c b/git/DFT_Signal_Reel/Src/principal.c index 197e724..6569c7f 100644 --- a/git/DFT_Signal_Reel/Src/principal.c +++ b/git/DFT_Signal_Reel/Src/principal.c @@ -5,7 +5,14 @@ extern int DFT_ModuleAuCarre(short int* Signal64ech, char k); extern short int LeSignal[]; -int result; +//int result; + +void callback() { + Start_DMA1(64); + Wait_On_End_Of_DMA1(); + Stop_DMA1; +} + int main(void) { @@ -14,7 +21,7 @@ int main(void) // =========================================================================== - int result = DFT_ModuleAuCarre(&(LeSignal[0]),1); + //int result = DFT_ModuleAuCarre(&(LeSignal[0]),1); //printf("le résultat : %d \n", result); @@ -22,9 +29,25 @@ int main(void) CLOCK_Configure(); - -//============================================================================ +GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL); +PWM_Init_ff(TIM2,3,720); + +short int dma_buf[64]; + +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 ); + +Systick_Period_ff(5*72*1000); +Systick_Prio_IT(0,callback); +SysTick_Enable_IT; +SysTick_On; + +//============================================================================ + + while (1) { diff --git a/git/PjtKEIL_StepDFT/Src/DFT.s b/git/PjtKEIL_StepDFT/Src/DFT.s index 4c6c66f..1953cd8 100644 --- a/git/PjtKEIL_StepDFT/Src/DFT.s +++ b/git/PjtKEIL_StepDFT/Src/DFT.s @@ -29,7 +29,7 @@ DFT_ModuleAuCarre proc - push{lr,r4,r5,r6,r7,r8,r9} + push{lr,r4-r9} mov r2,#0 mov r3,#0 mov r9,#0 @@ -40,6 +40,7 @@ boucle cmp r2,#63 ldrsh r4,[r0,r5] ldr r6, =TabCos ldr r7, =TabSin + ;mul r5, r5, r1 ldrsh r6,[r6,r5] ldrsh r7,[r7,r5] @@ -57,7 +58,9 @@ fin_boucle adds r0,r2,r4 adc r1, r3, r5 - pop{pc,r4,r5,r6,r7,r8,r9} + mov r0,r1 + + pop{pc,r4-r9} endp diff --git a/git/PjtKEIL_StepDFT/Src/principal.c b/git/PjtKEIL_StepDFT/Src/principal.c index 197e724..372b191 100644 --- a/git/PjtKEIL_StepDFT/Src/principal.c +++ b/git/PjtKEIL_StepDFT/Src/principal.c @@ -5,7 +5,7 @@ extern int DFT_ModuleAuCarre(short int* Signal64ech, char k); extern short int LeSignal[]; -int result; + int result; int main(void) { @@ -14,7 +14,7 @@ int main(void) // =========================================================================== - int result = DFT_ModuleAuCarre(&(LeSignal[0]),1); + //printf("le résultat : %d \n", result); @@ -22,7 +22,7 @@ int main(void) CLOCK_Configure(); - + result = DFT_ModuleAuCarre(&(LeSignal[0]),1); //============================================================================