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} ; push {r4, r5, r6, r8, r9, r10} ;
mov r2, #0 ; partie imaginaire = 0 mov r2, #0 ; partie imaginaire = 0
mov r3, #0 ; partie reelle = 0 mov r3, #0 ; partie reelle = 0
mov r7, #0 ; mov r7, #0 ; compteur pour parcourir les tableaux "TabCos" et "TabSin"
mov r4, #0 ; mov r4, #0 ; compteur pour parcourir le signal d'entrée
ldr r5, =TabCos ldr r5, =TabCos ; les adresses du tableau "TabCos"
ldr r6, =TabSin ldr r6, =TabSin ; les adresses du tableau "TabSin"
SumLoop 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 r9, [r5, r7, lsl #1] ;
ldrsh r10,[r6, r7, lsl #1] ldrsh r10,[r6, r7, lsl #1] ;
smull r9, r8, r8, r9 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 smull r10, r8, r8, r10 ;
add r3, r3, r9 add r3, r3, r9 ; Mise à jour des parties réelles et imaginaires du résultat.
add r2, r2, r10 add r2, r2, r10 ;
add r7, r1 ; add r7, r1 ;
add r4, #1 ; ++n add r4, #1 ; ++n
cmp r4, #64 cmp r4, #64 ;
bcc SumLoop ; if n < 64 refaire bcc SumLoop ; if n < 64 refaire
;mov r0, r3 ; partie reelle comme resultat ;mov r0, r3 ; partie reelle comme resultat
mov r1, r2 mov r1, r2
;abs ;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 movge r0, r3
neglt r0, r3 neglt r0, r3