Partie DFT terminée

This commit is contained in:
Theophile Zenou-Truchot 2023-05-10 16:41:01 +02:00
parent add2839abb
commit 9115260fe4
5 changed files with 181 additions and 17 deletions

View file

@ -1,6 +1,8 @@
PRESERVE8
THUMB
export DFT_ModuleAuCarre
extern LeSignal
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
@ -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

View file

@ -1,9 +1,9 @@
#include "DriverJeuLaser.h"
extern int DFT_ModuleAuCarre(short int * Signal64ech, char k);
extern short int LeSignal;
int tab[64];
int main(void)
{
@ -15,8 +15,9 @@ int main(void)
CLOCK_Configure();
for (int i = 0; i<64; i++){
tab[i] = DFT_ModuleAuCarre( &LeSignal, i);
}
//============================================================================

View file

@ -75,7 +75,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
@ -153,7 +153,73 @@
<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/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>36</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218430</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\DFT.s</Filename>
<ExecCommand></ExecCommand>
<Expression>\\StepDFT\Src/DFT.s\36</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>30</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218412</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\DFT.s</Filename>
<ExecCommand></ExecCommand>
<Expression>\\StepDFT\Src/DFT.s\30</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>38</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\DFT.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>emptytab</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>r0</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>r3</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -200,7 +266,7 @@
<Wi>
<IntNumber>0</IntNumber>
<FirstString>((portb &amp; 0x00000002) &gt;&gt; 1 &amp; 0x2) &gt;&gt; 1</FirstString>
<SecondString>FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274622026203078303030303030303229203E3E2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F160000000000000000000000000000000000000096020008</SecondString>
<SecondString>FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274622026203078303030303030303229203E3E2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F100000000000000000000000000000000000000096020008</SecondString>
</Wi>
</LogicAnalyzers>
<DebugDescription>
@ -267,7 +333,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
@ -624,6 +690,30 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Src\DFT.s</PathWithFileName>
<FilenameWithoutPath>DFT.s</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Src\Signal.asm</PathWithFileName>
<FilenameWithoutPath>Signal.asm</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -634,7 +724,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>2</FileNumber>
<FileNumber>4</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -654,7 +744,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>3</FileNumber>
<FileNumber>5</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View file

@ -388,6 +388,16 @@
<FileType>1</FileType>
<FilePath>.\Src\principal.c</FilePath>
</File>
<File>
<FileName>DFT.s</FileName>
<FileType>2</FileType>
<FilePath>.\Src\DFT.s</FilePath>
</File>
<File>
<FileName>Signal.asm</FileName>
<FileType>2</FileType>
<FilePath>.\Src\Signal.asm</FilePath>
</File>
</Files>
</Group>
<Group>
@ -797,6 +807,16 @@
<FileType>1</FileType>
<FilePath>.\Src\principal.c</FilePath>
</File>
<File>
<FileName>DFT.s</FileName>
<FileType>2</FileType>
<FilePath>.\Src\DFT.s</FilePath>
</File>
<File>
<FileName>Signal.asm</FileName>
<FileType>2</FileType>
<FilePath>.\Src\Signal.asm</FilePath>
</File>
</Files>
</Group>
<Group>
@ -1275,6 +1295,16 @@
<FileType>1</FileType>
<FilePath>.\Src\principal.c</FilePath>
</File>
<File>
<FileName>DFT.s</FileName>
<FileType>2</FileType>
<FilePath>.\Src\DFT.s</FilePath>
</File>
<File>
<FileName>Signal.asm</FileName>
<FileType>2</FileType>
<FilePath>.\Src\Signal.asm</FilePath>
</File>
</Files>
</Group>
<Group>

View file

@ -154,11 +154,18 @@
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>button</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>266</SubType>
<ItemText>0x200000a0</ItemText>
<ItemText>button</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
@ -168,7 +175,7 @@
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>0</aLwin>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
@ -182,7 +189,7 @@
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aLa>1</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>