version finale

This commit is contained in:
Firmin Rousseau 2023-06-05 10:07:14 +02:00
parent 788676daa7
commit 3307d47679
5 changed files with 128 additions and 44 deletions

View file

@ -5,27 +5,15 @@
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
area mesdata,data,readonly
import LeSignal
;Section RAM (read write):
area maram,data,readwrite
ModuleAuCarre dcd 0
PartieReelle dcd 0
PartieIm dcd 0
; ===============================================================================================
;Section ROM code (read only) :
area moncode,code,readonly
; écrire le code ici
export DFT_ModuleAuCarre
;Section ROM code (read only) :
@ -163,35 +151,39 @@ TabSin
DCW -6393 ; 62 0xe707 -0.19510
DCW -3212 ; 63 0xf374 -0.09802
DFT_ModuleAuCarre proc
;Section ROM code (read only) :
area moncode,code,readonly
; écrire le code ici
DFT_ModuleAuCarre proc
push {r4, r5, r6, r7, r8}
; r0 occupé par k
; r1 occupé par l'adresse du signal
ldr r0, =TabCos
; ModuleAuCarre
; r6 occupé par PartieReelle
; r7 occupé par PartieIm
push {r4, r5, r6, r7, r8, r9, r10}
ldr r9, =TabCos
ldr r8, =TabSin
ldr r1, =LeSignal
ldr r6, =PartieReelle
ldr r7, =PartieIm
;ldr r1, =LeSignal
mov r3, #0
debut_boucle
ldrsh r4, [r1,r3, lsl #1];lecture de la valeur du signal à l'adresse r1 décalé de l'index r3
ldrsh r2, [r0,r3, lsl #1];lecture de la valeur du cos à l'adresse r0 décalé de l'index r3
mul r10, r3, r0
and r10, #63
;attention format à prendre en compte.............................
ldrsh r2, [r9,r10, lsl #1];lecture de la valeur du cos à l'adresse r0 décalé de l'index r3
mul r5, r2, r4 ;calcul
ldr r2, [r6] ;lecture de la valeur de la partie réelle
add r2, r5 ; on y ajoute la valeur calculée
strh r2, [r6] ; on store la valeur à l'adresse
add r6, r5 ; on y ajoute la valeur calculée
ldrsh r2, [r8,r3, lsl #1];lecture de la valeur du sin
ldrsh r2, [r8,r10, lsl #1];lecture de la valeur du sin
mul r5, r2, r4 ; calcul en reprenant la valeur du signal qui ne change pas dans r4
ldr r2, [r7];lecture de la valeur de la partie imaginaire
add r2, r5
strh r2, [r7]
add r7, r5
add r3, #1 ;incrémentation de l'index
@ -199,9 +191,12 @@ debut_boucle
bne debut_boucle
fin_boucle
pop {r4, r5, r6, r7, r8}
smull r5, r4, r6, r6
smull r10, r2, r7, r7
add r4, r2
mov r0,r4
pop {r4, r5, r6, r7, r8, r9, r10}
bx lr
endp

View file

@ -1,10 +1,14 @@
#include <stdio.h>
#include "DriverJeuLaser.h"
extern short int LeSignal;
extern int DFT_ModuleAuCarre(int k, short int * Signal64ech);
int main(void)
{
// ===========================================================================
@ -19,10 +23,16 @@ CLOCK_Configure();
//============================================================================
DFT_ModuleAuCarre(0, &LeSignal);
while (1)
{
}
}

View file

@ -75,7 +75,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
@ -154,6 +154,26 @@
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>r3,0x0A</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>r10</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>256</SubType>
<ItemText>R0</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -267,7 +287,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
@ -624,6 +644,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 +678,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 +698,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>
@ -1322,7 +1352,7 @@
<LayerInfo>
<Layers>
<Layer>
<LayName>&lt;Project Info&gt;</LayName>
<LayName>StepDFT</LayName>
<LayTarg>0</LayTarg>
<LayPrjMark>1</LayPrjMark>
</Layer>

View file

@ -75,7 +75,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
@ -160,6 +160,11 @@
<WinNumber>1</WinNumber>
<ItemText>SortieSon</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>bouton</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
@ -287,7 +292,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>