forked from acco/chti23
step dft fonctionnel
This commit is contained in:
parent
a5cd0f0aee
commit
821b08ba0e
3 changed files with 104 additions and 26 deletions
|
@ -21,25 +21,61 @@
|
||||||
area moncode,code,readonly
|
area moncode,code,readonly
|
||||||
; écrire le code ici
|
; écrire le code ici
|
||||||
|
|
||||||
|
EXPORT DFT_ModuleAuCarre
|
||||||
DFT_ModuleAuCarre PROC
|
|
||||||
push {r4, r5}
|
DFT_PartieReelle PROC
|
||||||
|
push {lr, r4, r5, r6}
|
||||||
|
ldr r3, =TabCos
|
||||||
|
mov r4, #0
|
||||||
mov r7, #0
|
mov r7, #0
|
||||||
mov r5, #0
|
Boucle1
|
||||||
ldr r3, =TabCos ; r3 = &TabCos[0];
|
mul r6, r1, r4
|
||||||
Loop
|
and r6, #63
|
||||||
ldrsh r2, [r3], #2 ; r2 = TabCos[i++]
|
ldrsh r2, [r3, r6, LSL#1]
|
||||||
ldrsh r4, [r0], #2 ; r5 = Signal[i++]
|
ldrsh r5, [r0, r6, LSL#1]
|
||||||
add r5, #1 ; i++;
|
mul r5, r2, r5
|
||||||
mul r2, r4 ; r3 = Signal[i] * TabCos[i];
|
add r7, r5
|
||||||
mul r2, r1 ; r3 = Signal[i] * TabCos[i] * k;
|
add r4, #1
|
||||||
add r7, r2
|
cmp r4, #64
|
||||||
cmp r5, #64
|
blt Boucle1
|
||||||
blt Loop
|
mov r0, r7
|
||||||
pop {r4, r5}
|
pop {lr, r4, r5, r6}
|
||||||
|
bx lr
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
DFT_PartieImaginaire PROC
|
||||||
|
push {lr, r4, r5, r6}
|
||||||
|
ldr r3, =TabSin
|
||||||
|
mov r4, #0
|
||||||
|
mov r7, #0
|
||||||
|
Boucle2
|
||||||
|
mul r6, r1, r4
|
||||||
|
and r6, #63
|
||||||
|
ldrsh r2, [r3, r6, LSL#1]
|
||||||
|
ldrsh r5, [r0, r6, LSL#1]
|
||||||
|
mul r5, r2, r5
|
||||||
|
add r7, r5
|
||||||
|
add r4, #1
|
||||||
|
cmp r4, #64
|
||||||
|
blt Boucle2
|
||||||
|
mov r0, r7
|
||||||
|
pop {lr, r4, r5, r6}
|
||||||
|
bx lr
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
DFT_ModuleAuCarre PROC
|
||||||
|
push {r0, r4, lr}
|
||||||
|
bl DFT_PartieReelle
|
||||||
|
mov r4, r0
|
||||||
|
pop {r0}
|
||||||
|
bl DFT_PartieImaginaire
|
||||||
|
smull r1, r3, r0, r0
|
||||||
|
smull r2, r7, r4, r4
|
||||||
|
adds r1, r2
|
||||||
|
adc r0, r3, r7
|
||||||
|
pop {r4, lr}
|
||||||
bx lr
|
bx lr
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
|
|
||||||
;Section ROM code (read only) :
|
;Section ROM code (read only) :
|
||||||
AREA Trigo, DATA, READONLY
|
AREA Trigo, DATA, READONLY
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
#include "DriverJeuLaser.h"
|
#include "DriverJeuLaser.h"
|
||||||
|
|
||||||
extern void DFT_ModuleAuCarre(short int* Signal64ech, char k);
|
extern int DFT_ModuleAuCarre(short int* Signal64ech, char k);
|
||||||
extern int16_t* LeSignal;
|
extern int16_t LeSignal;
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int test = 0;
|
||||||
|
unsigned int test2 = 0;
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
@ -25,8 +26,9 @@ while (1)
|
||||||
{
|
{
|
||||||
if (once) {
|
if (once) {
|
||||||
once = 0;
|
once = 0;
|
||||||
DFT_ModuleAuCarre(LeSignal, 1);
|
//for (int i = 0; i < 64; i++)
|
||||||
|
test = DFT_ModuleAuCarre(&LeSignal, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
<OPTFL>
|
<OPTFL>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<IsCurrentTarget>0</IsCurrentTarget>
|
<IsCurrentTarget>1</IsCurrentTarget>
|
||||||
</OPTFL>
|
</OPTFL>
|
||||||
<CpuCode>18</CpuCode>
|
<CpuCode>18</CpuCode>
|
||||||
<DebugOpt>
|
<DebugOpt>
|
||||||
|
@ -154,6 +154,46 @@
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint/>
|
<Breakpoint/>
|
||||||
|
<WatchWindow1>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>r7</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>r4,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>r5</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>3</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>r0</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>4</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>r3</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>test</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow1>
|
||||||
|
<MemoryWindow1>
|
||||||
|
<Mm>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<SubType>0</SubType>
|
||||||
|
<ItemText>test</ItemText>
|
||||||
|
<AccSizeX>0</AccSizeX>
|
||||||
|
</Mm>
|
||||||
|
</MemoryWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
</Tracepoint>
|
</Tracepoint>
|
||||||
|
@ -174,7 +214,7 @@
|
||||||
<AscS3>0</AscS3>
|
<AscS3>0</AscS3>
|
||||||
<aSer3>0</aSer3>
|
<aSer3>0</aSer3>
|
||||||
<eProf>0</eProf>
|
<eProf>0</eProf>
|
||||||
<aLa>0</aLa>
|
<aLa>1</aLa>
|
||||||
<aPa1>0</aPa1>
|
<aPa1>0</aPa1>
|
||||||
<AscS4>0</AscS4>
|
<AscS4>0</AscS4>
|
||||||
<aSer4>0</aSer4>
|
<aSer4>0</aSer4>
|
||||||
|
@ -199,8 +239,8 @@
|
||||||
<LogicAnalyzers>
|
<LogicAnalyzers>
|
||||||
<Wi>
|
<Wi>
|
||||||
<IntNumber>0</IntNumber>
|
<IntNumber>0</IntNumber>
|
||||||
<FirstString>((portb & 0x00000002) >> 1 & 0x2) >> 1</FirstString>
|
<FirstString>`test</FirstString>
|
||||||
<SecondString>FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274622026203078303030303030303229203E3E2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F160000000000000000000000000000000000000096020008</SecondString>
|
<SecondString>FF000000000000000000E0C10000C0FFFFFFDF410000000000000000000000000000000074657374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F0A000000000000000000000000000000000000007C020008</SecondString>
|
||||||
</Wi>
|
</Wi>
|
||||||
</LogicAnalyzers>
|
</LogicAnalyzers>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
|
@ -267,7 +307,7 @@
|
||||||
<OPTFL>
|
<OPTFL>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<IsCurrentTarget>1</IsCurrentTarget>
|
<IsCurrentTarget>0</IsCurrentTarget>
|
||||||
</OPTFL>
|
</OPTFL>
|
||||||
<CpuCode>18</CpuCode>
|
<CpuCode>18</CpuCode>
|
||||||
<DebugOpt>
|
<DebugOpt>
|
||||||
|
|
Loading…
Reference in a new issue