Update 'soft/PjtKEIL_StepDFT/Src/DFT.s'

This commit is contained in:
Oussama Hannouch 2023-05-15 21:36:12 +02:00
parent 18fb60906a
commit efe2996a78

View file

@ -27,29 +27,29 @@ DFT_ModuleAuCarre proc
push {r4, r5, r6, r8, r9, r10} ;
mov r2, #0 ; partie imaginaire = 0
mov r3, #0 ; partie reelle = 0
mov r7, #0 ;
mov r4, #0 ;
ldr r5, =TabCos
ldr r6, =TabSin
mov r7, #0 ; compteur pour parcourir les tableaux "TabCos" et "TabSin"
mov r4, #0 ; compteur pour parcourir le signal d'entrée
ldr r5, =TabCos ; les adresses du tableau "TabCos"
ldr r6, =TabSin ; les adresses du tableau "TabSin"
SumLoop
ldrsh r8, [r0, r4, lsl #1] ;
ldrsh r8, [r0, r4, lsl #1] ; Chargement des éléments du signal d'entrée
ldrsh r9, [r5, r7, lsl #1] ;
ldrsh r10,[r6, r7, lsl #1]
smull r9, r8, r8, r9
smull r10, r8, r8, r10
add r3, r3, r9
add r2, r2, r10
ldrsh r10,[r6, r7, lsl #1] ;
smull r9, r8, r8, r9 ; Multiplication de l'élément du signal d'entrée avec l'élément correspondant des tableaux "TabCos" et "TabSin" (en utilisant une multiplication longue pour éviter la saturation).
smull r10, r8, r8, r10 ;
add r3, r3, r9 ; Mise à jour des parties réelles et imaginaires du résultat.
add r2, r2, r10 ;
add r7, r1 ;
add r4, #1 ; ++n
cmp r4, #64
cmp r4, #64 ;
bcc SumLoop ; if n < 64 refaire
;mov r0, r3 ; partie reelle comme resultat
mov r1, r2
;abs
cmp r3, #0
cmp r3, #0 ; Calcul de la valeur absolue du résultat en stockant le maximum entre "r3" et 0 dans "r0".
movge r0, r3
neglt r0, r3