DFT en cours
This commit is contained in:
parent
6de270033e
commit
609f428e0d
8 changed files with 235 additions and 49 deletions
|
@ -153,29 +153,19 @@
|
|||
<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>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint>
|
||||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>9</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134225472</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>\\CHTI\Src/principal.c\9</Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<Breakpoint/>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>tab</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
<WinNumber>1</WinNumber>
|
||||
<SubType>0</SubType>
|
||||
<ItemText>0x20000000</ItemText>
|
||||
<SubType>10</SubType>
|
||||
<ItemText>0x08001F28</ItemText>
|
||||
<AccSizeX>0</AccSizeX>
|
||||
</Mm>
|
||||
</MemoryWindow1>
|
||||
|
@ -199,7 +189,7 @@
|
|||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>1</aLa>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
|
@ -287,8 +277,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Src\table_sin_cos.s</PathWithFileName>
|
||||
<FilenameWithoutPath>table_sin_cos.s</FilenameWithoutPath>
|
||||
<PathWithFileName>.\Src\calcul_dft.s</PathWithFileName>
|
||||
<FilenameWithoutPath>calcul_dft.s</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
@ -332,6 +322,30 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Src\table_sin_cos.s</PathWithFileName>
|
||||
<FilenameWithoutPath>table_sin_cos.s</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Src\signal.s</PathWithFileName>
|
||||
<FilenameWithoutPath>signal.s</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
|
|
|
@ -398,9 +398,9 @@
|
|||
<FilePath>.\Src\calculCarre.s</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>table_sin_cos.s</FileName>
|
||||
<FileName>calcul_dft.s</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\table_sin_cos.s</FilePath>
|
||||
<FilePath>.\Src\calcul_dft.s</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
@ -422,6 +422,16 @@
|
|||
<FileType>4</FileType>
|
||||
<FilePath>..\GASSP72\gassp72.lib</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>table_sin_cos.s</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\table_sin_cos.s</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>signal.s</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\signal.s</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
|
|
|
@ -12,6 +12,8 @@ GPIOB_BSRR equ 0x40010C10 ; Bit Set/Reset register
|
|||
timer_callback proc
|
||||
|
||||
; mise a 1 de PB1
|
||||
push {lr}
|
||||
|
||||
ldr r1, =etat
|
||||
ldr r1, [r1]
|
||||
ldr r3, =GPIOB_BSRR
|
||||
|
@ -24,6 +26,7 @@ gdc ldr r0, =etat
|
|||
str r1, [r3]
|
||||
; N.B. le registre BSRR est write-only, on ne peut pas le relire
|
||||
|
||||
pop {lr}
|
||||
bx lr
|
||||
endp
|
||||
|
||||
|
|
|
@ -7,9 +7,13 @@
|
|||
;
|
||||
|
||||
calcul_carre proc
|
||||
ldr r3, =TabSin
|
||||
|
||||
push {r4}
|
||||
push {r5}
|
||||
|
||||
ldr r4, =TabSin
|
||||
ldr r5, =TabCos
|
||||
ldrh r2, [r3, r0, LSL #1]
|
||||
ldrh r2, [r4, r0, LSL #1]
|
||||
ldrh r0, [r5, r0, LSL #1]
|
||||
|
||||
mul r0, r0
|
||||
|
@ -17,7 +21,8 @@ calcul_carre proc
|
|||
|
||||
add r0, r2
|
||||
|
||||
str r0, [r1]
|
||||
pop {r5}
|
||||
pop {r4}
|
||||
|
||||
bx lr
|
||||
endp
|
||||
|
|
65
Src/calcul_dft.s
Normal file
65
Src/calcul_dft.s
Normal file
|
@ -0,0 +1,65 @@
|
|||
; ce programme est pour l'assembleur RealView (Keil)
|
||||
thumb
|
||||
area moncode, code, readonly
|
||||
export calcul_dft_moitie
|
||||
export calcul_dft
|
||||
import TabCos
|
||||
import TabSin
|
||||
import TabSig
|
||||
;
|
||||
|
||||
|
||||
calcul_dft proc
|
||||
push {lr}
|
||||
|
||||
;push {r1}
|
||||
|
||||
ldr r2, =TabCos
|
||||
bl calcul_dft_moitie ;recuperation Re(k) dans r0
|
||||
|
||||
;pop {r1}
|
||||
|
||||
;push {r0} ;mise de Re(k) dans la pile
|
||||
|
||||
;ldr r2, =TabSin
|
||||
;bl calcul_dft_moitie ;mise de -Im(k) dans r0
|
||||
|
||||
;mul r0, r0, r0 ;(-Im(k))²
|
||||
|
||||
;pop {r1} ;mise de Re(k) dans r1
|
||||
;mul r1, r1, r1 ;Re(k)²
|
||||
;add r0, r0, r1 ;addition de Re(k)² + Im(k)²
|
||||
pop {lr}
|
||||
bx lr
|
||||
endp
|
||||
|
||||
calcul_dft_moitie proc
|
||||
push {lr,r4-r6}
|
||||
|
||||
|
||||
mov r4, r0
|
||||
mov r5, r2
|
||||
mov r6, r1
|
||||
|
||||
mov r3, #0 ;i=0 dans r3
|
||||
mov r0, #0 ;resultat de la somme dans r0
|
||||
boucle ldrh r2, [r4, r3, LSL #1] ;chargement de x(i)
|
||||
|
||||
mul r1, r3, r6 ;multiplication ik dans r1
|
||||
and r1, r1, #63 ;modulo de ik par 64
|
||||
|
||||
ldrh r1, [r5, r1, LSL #1] ;chargement de cos(ik..)
|
||||
mul r1, r1, r2 ;multiplication x(i)cos(ik..)
|
||||
add r0, r0, r1 ;ajout dans la somme
|
||||
add r3, #1 ;incrementation de i
|
||||
cmp r3, #64 ;test de i
|
||||
bne boucle
|
||||
beq sortie
|
||||
|
||||
sortie
|
||||
|
||||
pop {lr,r4-r6}
|
||||
bx lr
|
||||
endp
|
||||
|
||||
end
|
|
@ -1,11 +1,24 @@
|
|||
#include "gassp72.h"
|
||||
|
||||
extern void timer_callback(void);
|
||||
extern short TabSig[];
|
||||
int etat = 0x00020000;
|
||||
|
||||
|
||||
extern int calcul_carre(int);
|
||||
extern int calcul_dft(short *, int);
|
||||
//int tab[64];
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
|
||||
//for(int i=0; i<64; i++){
|
||||
// tab[i]= calcul_carre(i);
|
||||
//}
|
||||
calcul_dft(TabSig,1);
|
||||
|
||||
|
||||
u32 Periode_en_Tck = 7200000;
|
||||
|
||||
// activation de la PLL qui multiplie la fréquence du quartz par 9
|
||||
|
|
75
Src/signal.s
Normal file
75
Src/signal.s
Normal file
|
@ -0,0 +1,75 @@
|
|||
AREA Signal, DATA, READONLY
|
||||
export TabSig
|
||||
|
||||
; Fnor = 1.000
|
||||
; Ph = 0.000
|
||||
; A = 2048.000
|
||||
|
||||
TabSig
|
||||
DCW 4095 ; 0 0x0fff 0.99976
|
||||
DCW 4086 ; 1 0x0ff6 0.99756
|
||||
DCW 4057 ; 2 0x0fd9 0.99048
|
||||
DCW 4008 ; 3 0x0fa8 0.97852
|
||||
DCW 3940 ; 4 0x0f64 0.96191
|
||||
DCW 3854 ; 5 0x0f0e 0.94092
|
||||
DCW 3751 ; 6 0x0ea7 0.91577
|
||||
DCW 3631 ; 7 0x0e2f 0.88647
|
||||
DCW 3496 ; 8 0x0da8 0.85352
|
||||
DCW 3347 ; 9 0x0d13 0.81714
|
||||
DCW 3186 ; 10 0x0c72 0.77783
|
||||
DCW 3013 ; 11 0x0bc5 0.73560
|
||||
DCW 2832 ; 12 0x0b10 0.69141
|
||||
DCW 2643 ; 13 0x0a53 0.64526
|
||||
DCW 2448 ; 14 0x0990 0.59766
|
||||
DCW 2249 ; 15 0x08c9 0.54907
|
||||
DCW 2048 ; 16 0x0800 0.50000
|
||||
DCW 1847 ; 17 0x0737 0.45093
|
||||
DCW 1648 ; 18 0x0670 0.40234
|
||||
DCW 1453 ; 19 0x05ad 0.35474
|
||||
DCW 1264 ; 20 0x04f0 0.30859
|
||||
DCW 1083 ; 21 0x043b 0.26440
|
||||
DCW 910 ; 22 0x038e 0.22217
|
||||
DCW 749 ; 23 0x02ed 0.18286
|
||||
DCW 600 ; 24 0x0258 0.14648
|
||||
DCW 465 ; 25 0x01d1 0.11353
|
||||
DCW 345 ; 26 0x0159 0.08423
|
||||
DCW 242 ; 27 0x00f2 0.05908
|
||||
DCW 156 ; 28 0x009c 0.03809
|
||||
DCW 88 ; 29 0x0058 0.02148
|
||||
DCW 39 ; 30 0x0027 0.00952
|
||||
DCW 10 ; 31 0x000a 0.00244
|
||||
DCW 0 ; 32 0x0000 0.00000
|
||||
DCW 10 ; 33 0x000a 0.00244
|
||||
DCW 39 ; 34 0x0027 0.00952
|
||||
DCW 88 ; 35 0x0058 0.02148
|
||||
DCW 156 ; 36 0x009c 0.03809
|
||||
DCW 242 ; 37 0x00f2 0.05908
|
||||
DCW 345 ; 38 0x0159 0.08423
|
||||
DCW 465 ; 39 0x01d1 0.11353
|
||||
DCW 600 ; 40 0x0258 0.14648
|
||||
DCW 749 ; 41 0x02ed 0.18286
|
||||
DCW 910 ; 42 0x038e 0.22217
|
||||
DCW 1083 ; 43 0x043b 0.26440
|
||||
DCW 1264 ; 44 0x04f0 0.30859
|
||||
DCW 1453 ; 45 0x05ad 0.35474
|
||||
DCW 1648 ; 46 0x0670 0.40234
|
||||
DCW 1847 ; 47 0x0737 0.45093
|
||||
DCW 2048 ; 48 0x0800 0.50000
|
||||
DCW 2249 ; 49 0x08c9 0.54907
|
||||
DCW 2448 ; 50 0x0990 0.59766
|
||||
DCW 2643 ; 51 0x0a53 0.64526
|
||||
DCW 2832 ; 52 0x0b10 0.69141
|
||||
DCW 3013 ; 53 0x0bc5 0.73560
|
||||
DCW 3186 ; 54 0x0c72 0.77783
|
||||
DCW 3347 ; 55 0x0d13 0.81714
|
||||
DCW 3496 ; 56 0x0da8 0.85352
|
||||
DCW 3631 ; 57 0x0e2f 0.88647
|
||||
DCW 3751 ; 58 0x0ea7 0.91577
|
||||
DCW 3854 ; 59 0x0f0e 0.94092
|
||||
DCW 3940 ; 60 0x0f64 0.96191
|
||||
DCW 4008 ; 61 0x0fa8 0.97852
|
||||
DCW 4057 ; 62 0x0fd9 0.99048
|
||||
DCW 4086 ; 63 0x0ff6 0.99756
|
||||
|
||||
END
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
export TabSin
|
||||
export TabCos
|
||||
|
||||
|
||||
TabCos
|
||||
DCW 32767 ; 0 0x7fff 0.99997
|
||||
DCW 32610 ; 1 0x7f62 0.99518
|
||||
|
|
Loading…
Reference in a new issue