forked from acco/chti23
dft marche bien
This commit is contained in:
parent
c20157a75b
commit
1de10927ba
5 changed files with 70 additions and 38 deletions
|
@ -24,56 +24,58 @@
|
||||||
EXPORT DFT_ModuleAuCarre
|
EXPORT DFT_ModuleAuCarre
|
||||||
|
|
||||||
DFT_PartieReelle PROC
|
DFT_PartieReelle PROC
|
||||||
push {lr, r4-r7}
|
push {lr, r4, r5, r6}
|
||||||
ldr r3, =TabCos
|
ldr r3, =TabCos
|
||||||
mov r4, #0
|
mov r4, #0
|
||||||
|
mov r6, #0
|
||||||
mov r7, #0
|
mov r7, #0
|
||||||
Boucle1
|
Boucle1
|
||||||
mul r6, r1, r4
|
add r6, r1
|
||||||
and r6, #63
|
and r6, #63
|
||||||
ldrsh r2, [r3, r6, LSL#1]
|
ldrsh r2, [r3, r6, LSL#1]
|
||||||
ldrsh r5, [r0, r6, LSL#1]
|
ldrsh r5, [r0, r4, LSL#1]
|
||||||
mul r5, r2, r5
|
mul r5, r2, r5
|
||||||
add r7, r5
|
add r7, r5
|
||||||
add r4, #1
|
add r4, #1
|
||||||
cmp r4, #64
|
cmp r4, #64
|
||||||
blt Boucle1
|
blt Boucle1
|
||||||
mov r0, r7
|
mov r0, r7
|
||||||
pop {lr, r4-r7}
|
pop {lr, r4, r5, r6}
|
||||||
bx lr
|
bx lr
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
DFT_PartieImaginaire PROC
|
DFT_PartieImaginaire PROC
|
||||||
push {lr, r4-r7}
|
push {lr, r4, r5, r6}
|
||||||
ldr r3, =TabSin
|
ldr r3, =TabSin
|
||||||
mov r4, #0
|
mov r4, #0
|
||||||
|
mov r6, #0
|
||||||
mov r7, #0
|
mov r7, #0
|
||||||
Boucle2
|
Boucle2
|
||||||
mul r6, r1, r4
|
add r6, r1
|
||||||
and r6, #63
|
and r6, #63
|
||||||
ldrsh r2, [r3, r6, LSL#1]
|
ldrsh r2, [r3, r6, LSL#1]
|
||||||
ldrsh r5, [r0, r6, LSL#1]
|
ldrsh r5, [r0, r4, LSL#1]
|
||||||
mul r5, r2, r5
|
mul r5, r2, r5
|
||||||
add r7, r5
|
add r7, r5
|
||||||
add r4, #1
|
add r4, #1
|
||||||
cmp r4, #64
|
cmp r4, #64
|
||||||
blt Boucle2
|
blt Boucle2
|
||||||
mov r0, r7
|
mov r0, r7 ; 10.22
|
||||||
pop {lr, r4-r7}
|
pop {lr, r4, r5, r6}
|
||||||
bx lr
|
bx lr
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
DFT_ModuleAuCarre PROC
|
DFT_ModuleAuCarre PROC
|
||||||
push {lr, r0-r7}
|
push {r0, r4, lr}
|
||||||
bl DFT_PartieReelle
|
bl DFT_PartieReelle
|
||||||
mov r4, r0
|
mov r4, r0
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bl DFT_PartieImaginaire
|
bl DFT_PartieImaginaire
|
||||||
smull r1, r3, r0, r0
|
smull r1, r3, r0, r0
|
||||||
smull r2, r7, r4, r4
|
smull r2, r7, r4, r4
|
||||||
;adds r1, r2
|
adds r1, r2
|
||||||
add r0, r3, r7
|
adc r0, r3, r7
|
||||||
pop {lr, r1-r7}
|
pop {r4, lr}
|
||||||
bx lr
|
bx lr
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ void mesure() {
|
||||||
Stop_DMA1;
|
Stop_DMA1;
|
||||||
|
|
||||||
for (int i = 0; i < 64; i++)
|
for (int i = 0; i < 64; i++)
|
||||||
coeff[i] = DFT_ModuleAuCarre(dma_buf, i);
|
coeff[i] = DFT_ModuleAuCarre(&(dma_buf[0]), i);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
|
@ -26,22 +26,20 @@ 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();
|
||||||
|
|
||||||
//Init_TimingADC_ActiveADC_ff(ADC1, 72);
|
Init_TimingADC_ActiveADC_ff(ADC1, 72);
|
||||||
//Single_Channel_ADC(ADC1, 2);
|
Single_Channel_ADC(ADC1, 2);
|
||||||
//Init_Conversion_On_Trig_Timer_ff(ADC1, TIM2_CC2, 225);
|
Init_Conversion_On_Trig_Timer_ff(ADC1, TIM2_CC2, 225);
|
||||||
//Init_ADC1_DMA1(0, dma_buf);
|
Init_ADC1_DMA1(0, dma_buf);
|
||||||
//
|
|
||||||
//Systick_Period_ff(72000000 * 5 / 1000);
|
Systick_Period_ff(72000000 * 5 / 1000);
|
||||||
//Systick_Prio_IT(0, mesure);
|
Systick_Prio_IT(0, mesure);
|
||||||
//SysTick_On;
|
SysTick_On;
|
||||||
//SysTick_Enable_IT;
|
SysTick_Enable_IT;
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
for (int i = 1; i < 64; i++)
|
|
||||||
coeff[i] = DFT_ModuleAuCarre(&LeSignal, i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,12 +27,13 @@ DFT_PartieReelle PROC
|
||||||
push {lr, r4, r5, r6}
|
push {lr, r4, r5, r6}
|
||||||
ldr r3, =TabCos
|
ldr r3, =TabCos
|
||||||
mov r4, #0
|
mov r4, #0
|
||||||
|
mov r6, #0
|
||||||
mov r7, #0
|
mov r7, #0
|
||||||
Boucle1
|
Boucle1
|
||||||
mul r6, r1, r4
|
add r6, r1
|
||||||
and r6, #63
|
and r6, #63
|
||||||
ldrsh r2, [r3, r6, LSL#1]
|
ldrsh r2, [r3, r6, LSL#1]
|
||||||
ldrsh r5, [r0, r6, LSL#1]
|
ldrsh r5, [r0, r4, LSL#1]
|
||||||
mul r5, r2, r5
|
mul r5, r2, r5
|
||||||
add r7, r5
|
add r7, r5
|
||||||
add r4, #1
|
add r4, #1
|
||||||
|
@ -47,18 +48,19 @@ DFT_PartieImaginaire PROC
|
||||||
push {lr, r4, r5, r6}
|
push {lr, r4, r5, r6}
|
||||||
ldr r3, =TabSin
|
ldr r3, =TabSin
|
||||||
mov r4, #0
|
mov r4, #0
|
||||||
|
mov r6, #0
|
||||||
mov r7, #0
|
mov r7, #0
|
||||||
Boucle2
|
Boucle2
|
||||||
mul r6, r1, r4
|
add r6, r1
|
||||||
and r6, #63
|
and r6, #63
|
||||||
ldrsh r2, [r3, r6, LSL#1]
|
ldrsh r2, [r3, r6, LSL#1]
|
||||||
ldrsh r5, [r0, r6, LSL#1]
|
ldrsh r5, [r0, r4, LSL#1]
|
||||||
mul r5, r2, r5
|
mul r5, r2, r5
|
||||||
add r7, r5
|
add r7, r5
|
||||||
add r4, #1
|
add r4, #1
|
||||||
cmp r4, #64
|
cmp r4, #64
|
||||||
blt Boucle2
|
blt Boucle2
|
||||||
mov r0, r7
|
mov r0, r7 ; 10.22
|
||||||
pop {lr, r4, r5, r6}
|
pop {lr, r4, r5, r6}
|
||||||
bx lr
|
bx lr
|
||||||
ENDP
|
ENDP
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#include "DriverJeuLaser.h"
|
#include "DriverJeuLaser.h"
|
||||||
|
|
||||||
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
|
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
|
||||||
|
extern int DFT_PartieReelle(short int* Signal64ech, char k);
|
||||||
|
extern int DFT_PartieImaginaire(short int* Signal64ech, char k);
|
||||||
extern int16_t LeSignal;
|
extern int16_t LeSignal;
|
||||||
|
|
||||||
unsigned int test = 0;
|
unsigned int test = 0;
|
||||||
|
@ -26,8 +28,9 @@ while (1)
|
||||||
{
|
{
|
||||||
if (once) {
|
if (once) {
|
||||||
once = 0;
|
once = 0;
|
||||||
//for (int i = 0; i < 64; i++)
|
for (int i = 0; i < 64; i++)
|
||||||
test = DFT_ModuleAuCarre(&LeSignal, 1);
|
test = DFT_ModuleAuCarre(&LeSignal, i);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,7 +153,24 @@
|
||||||
<Name>-U066CFF574857847167074929 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
<Name>-U066CFF574857847167074929 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint/>
|
<Breakpoint>
|
||||||
|
<Bp>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>32</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>134218380</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>1</BreakIfRCount>
|
||||||
|
<Filename>.\Src\principal.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression>\\StepDFT\Src/principal.c\32</Expression>
|
||||||
|
</Bp>
|
||||||
|
</Breakpoint>
|
||||||
<WatchWindow1>
|
<WatchWindow1>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
|
@ -185,6 +202,16 @@
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>test</ItemText>
|
<ItemText>test</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>6</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>i</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>7</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>test</ItemText>
|
||||||
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<MemoryWindow1>
|
<MemoryWindow1>
|
||||||
<Mm>
|
<Mm>
|
||||||
|
@ -240,7 +267,7 @@
|
||||||
<Wi>
|
<Wi>
|
||||||
<IntNumber>0</IntNumber>
|
<IntNumber>0</IntNumber>
|
||||||
<FirstString>`test</FirstString>
|
<FirstString>`test</FirstString>
|
||||||
<SecondString>FF000000000000000000E0C10000C0FFFFFFDF410000000000000000000000000000000074657374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F0A000000000000000000000000000000000000007C020008</SecondString>
|
<SecondString>FF00000000000000000000000000809AE8FFCF410000000000000000000000000000000074657374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F10000000000000000000000000000000000000007C020008</SecondString>
|
||||||
</Wi>
|
</Wi>
|
||||||
</LogicAnalyzers>
|
</LogicAnalyzers>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
|
|
Loading…
Reference in a new issue