diff --git a/soft/PjtKEIL_StepDFT/Src/DFT.s b/soft/PjtKEIL_StepDFT/Src/DFT.s index dd9c336..b19a538 100644 --- a/soft/PjtKEIL_StepDFT/Src/DFT.s +++ b/soft/PjtKEIL_StepDFT/Src/DFT.s @@ -23,32 +23,37 @@ export DFT_ModuleAuCarre + DFT_ModuleAuCarre proc - push {r4, r5, r6, r8, r9, r10} ; - eor r2, r2 ; partie imaginaire = 0 - eor r3, r3 ; partie reelle = 0 - eor r7, r7 ; - eor r4, r4 ; - ldr r5, =TabCos - ldr r6, =TabSin - -SumLoop - ldrsh r8, [r0, r4, lsl #1] ; - - ldrsh r9, [r5, r7, lsl #1] ; - mul r9, r8, r9 - asr r9, #15 ; - add r3, r3, r9 - add r7, r1 ; - add r4, r4, #1 ; ++n - cmp r4, #64 - bcc SumLoop ; if n < 64 refaire - - mov r0, r3 ; partie reelle - - pop {r4, r5, r6, r8, r9, r10} - bx lr - endp + push {r4, r5, r6, r8, r9, r10}; sauvegarde des registres dans la pile + mov r2, #0 + mov r3, #0 + mov r7 ,#0 + mov r4 ,#0 + ldr r5, =TabCos + ldr r6, =TabSin + + +Sommation + + ldrsh r8,[r0, r4, lsl#1] + ldrsh r9,[r5, r7, lsl #1] + ldrsh r10,[r6, r7, lsl #1] + mul r9, r8, r9 + mul r10, r8, r10 + asr r9, #15 + asr r10, #15 + add r3,r3, r9 + add r2,r2, r10 + add r7, r1 + add r4, r4, #1 + cmp r4 ,#64 + blt Sommation + mov r0, r3 + mov r1, r2 + pop{r4, r5, r6, r7, r8, r9, r10} + bx lr + endp