diff --git a/soft/PjtKEIL_StepDFT/Src/DFT.s b/soft/PjtKEIL_StepDFT/Src/DFT.s
index 3f6b5d4..46b2164 100644
--- a/soft/PjtKEIL_StepDFT/Src/DFT.s
+++ b/soft/PjtKEIL_StepDFT/Src/DFT.s
@@ -1,7 +1,9 @@
PRESERVE8
THUMB
+
+ export DFT_ModuleAuCarre
+ extern LeSignal
-
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
area mesdata,data,readonly
@@ -21,9 +23,43 @@
area moncode,code,readonly
; écrire le code ici
+DFT_ModuleAuCarre
+ push {lr,r0}
+ ldr r2, =TabCos
+ bl DFT_X ; calcul cos
+ mov r3,r0 ; met le res dans r3
+ pop{r0}
+ ldr r2, =TabSin
+ push{r3}
+ bl DFT_X ; calcul sin
+ pop{r3}
+ asr r3,#16; décalage signé pour éviter le débordement du registre
+ asr r0,#16; décalage signé pour éviter le débordement du registre
+ mul r3,r3; cos carré dans r3 nouveau format 22.10
+ mul r0,r0; sin carré dans r0 nouveau format 22.10
+ add r0,r3; somme des carrés dans le registre de retour format 22.10
+ pop{pc}
-
+DFT_X
+ push {lr, r4, r5, r6}
+ mov r4, #0
+ mov r5, #0
+boucle
+ cmp r4, #64
+ beq fin
+ ldrsh r3, [r0, r4, lsl#1]; R3 (signal) -> format 4.12
+ mul r6, r1, r4
+ and r6, #0x3f
+ ldrsh r6, [r2, r6, lsl#1]; R6 (tabCos)-> format 1.15
+ mul r6, r3; r6 format ->5.27
+ asr r6, #6
+ add r5, r6; r5 (Somme) doit etre au format 5+6(à cause du asr).27-6 = 11.21
+ add r4, #1
+ b boucle
+fin
+ mov r0, r5
+ pop {pc, r4, r5, r6}
;Section ROM code (read only) :
AREA Trigo, DATA, READONLY
diff --git a/soft/PjtKEIL_StepDFT/Src/principal.c b/soft/PjtKEIL_StepDFT/Src/principal.c
index d09be75..468bbf9 100644
--- a/soft/PjtKEIL_StepDFT/Src/principal.c
+++ b/soft/PjtKEIL_StepDFT/Src/principal.c
@@ -1,12 +1,12 @@
#include "DriverJeuLaser.h"
-
-
-
+extern int DFT_ModuleAuCarre(short int * Signal64ech, char k);
+extern short int LeSignal;
+int tab[64];
int main(void)
{
-
+
// ===========================================================================
// ============= INIT PERIPH (faites qu'une seule fois) =====================
// ===========================================================================
@@ -15,8 +15,9 @@ int main(void)
CLOCK_Configure();
-
-
+ for (int i = 0; i<64; i++){
+ tab[i] = DFT_ModuleAuCarre( &LeSignal, i);
+ }
//============================================================================
diff --git a/soft/PjtKEIL_StepDFT/StepDFT.uvoptx b/soft/PjtKEIL_StepDFT/StepDFT.uvoptx
index 0d72cfc..0195312 100644
--- a/soft/PjtKEIL_StepDFT/StepDFT.uvoptx
+++ b/soft/PjtKEIL_StepDFT/StepDFT.uvoptx
@@ -75,7 +75,7 @@
1
0
- 0
+ 1
18
@@ -153,7 +153,73 @@
-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)
-
+
+
+ 0
+ 0
+ 36
+ 1
+ 134218430
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ .\Src\DFT.s
+
+ \\StepDFT\Src/DFT.s\36
+
+
+ 1
+ 0
+ 30
+ 1
+ 134218412
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ .\Src\DFT.s
+
+ \\StepDFT\Src/DFT.s\30
+
+
+ 2
+ 0
+ 38
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ .\Src\DFT.s
+
+
+
+
+
+
+ 0
+ 1
+ emptytab
+
+
+ 1
+ 1
+ r0
+
+
+ 2
+ 1
+ r3
+
+
0
@@ -200,7 +266,7 @@
0
((portb & 0x00000002) >> 1 & 0x2) >> 1
- FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274622026203078303030303030303229203E3E2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F160000000000000000000000000000000000000096020008
+ FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274622026203078303030303030303229203E3E2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F100000000000000000000000000000000000000096020008
@@ -267,7 +333,7 @@
1
0
- 1
+ 0
18
@@ -624,6 +690,30 @@
0
0
+
+ 1
+ 2
+ 2
+ 0
+ 0
+ 0
+ .\Src\DFT.s
+ DFT.s
+ 0
+ 0
+
+
+ 1
+ 3
+ 2
+ 0
+ 0
+ 0
+ .\Src\Signal.asm
+ Signal.asm
+ 0
+ 0
+
@@ -634,7 +724,7 @@
0
2
- 2
+ 4
2
0
0
@@ -654,7 +744,7 @@
0
3
- 3
+ 5
4
0
0
diff --git a/soft/PjtKEIL_StepDFT/StepDFT.uvprojx b/soft/PjtKEIL_StepDFT/StepDFT.uvprojx
index 9031782..63375da 100644
--- a/soft/PjtKEIL_StepDFT/StepDFT.uvprojx
+++ b/soft/PjtKEIL_StepDFT/StepDFT.uvprojx
@@ -388,6 +388,16 @@
1
.\Src\principal.c
+
+ DFT.s
+ 2
+ .\Src\DFT.s
+
+
+ Signal.asm
+ 2
+ .\Src\Signal.asm
+
@@ -797,6 +807,16 @@
1
.\Src\principal.c
+
+ DFT.s
+ 2
+ .\Src\DFT.s
+
+
+ Signal.asm
+ 2
+ .\Src\Signal.asm
+
@@ -1275,6 +1295,16 @@
1
.\Src\principal.c
+
+ DFT.s
+ 2
+ .\Src\DFT.s
+
+
+ Signal.asm
+ 2
+ .\Src\Signal.asm
+
diff --git a/soft/PjtKEIL_StepSon/StepSon.uvoptx b/soft/PjtKEIL_StepSon/StepSon.uvoptx
index 30ee7a5..1dddbf5 100644
--- a/soft/PjtKEIL_StepSon/StepSon.uvoptx
+++ b/soft/PjtKEIL_StepSon/StepSon.uvoptx
@@ -154,11 +154,18 @@
+
+
+ 0
+ 1
+ button
+
+
1
266
- 0x200000a0
+ button
0
@@ -168,7 +175,7 @@
0
1
- 0
+ 1
0
0
0
@@ -182,7 +189,7 @@
0
0
0
- 0
+ 1
0
0
0