diff --git a/soft/PjtKEIL_StepDFT/Src/DFT.s b/soft/PjtKEIL_StepDFT/Src/DFT.s index 1074347..3c519fc 100644 --- a/soft/PjtKEIL_StepDFT/Src/DFT.s +++ b/soft/PjtKEIL_StepDFT/Src/DFT.s @@ -35,11 +35,8 @@ SommeForReel ldrsh r4, [r0,r3,lsl #1] mul r5, r1, r3 and r5, #63 - ;;mov r7, r5 - ;mul r7, r5 ldr r6, =TabCos ldrsh r5, [r6,r5,lsl #1] - ;;smlal r2, r7, r4, r5 mla r2, r4, r5, r2 add r3, #1 cmp r3, #64 @@ -64,11 +61,8 @@ SommeForImage ldrsh r4, [r0,r3,lsl #1] mul r5, r1, r3 and r5, #63 - ;;mov r7, r5 - ;mul r7, r5 ldr r6, =TabSin ldrsh r5, [r6,r5,lsl #1] - ;;smlal r2, r7, r4, r5 mla r2, r4, r5, r2 add r3, #1 cmp r3, #64 @@ -82,18 +76,18 @@ SommeForImage DFTTotale proc push {lr} - mov r7, r0 + mov r7, r0 ;;On sauvegarde les arguments de la fonction dans r7 et r8 mov r8, r1 bl DFTReel - mov r3, r7 - mov r7, r0 - mov r0, r4 + mov r3, r7 + mov r7, r0 ;;On sauvegarde la valeur de retour de DFTReel + mov r0, r3 mov r3, r8 mov r8, r1 mov r1, r3 bl DFTImage - smull r0, r1, r0, r0 - smlal r0, r1, r7, r7 + smull r1, r0, r0, r0 + smlal r1, r0, r7, r7 pop {pc} endp diff --git a/soft/PjtKEIL_StepDFT/Src/Signal.asm b/soft/PjtKEIL_StepDFT/Src/Signal.asm index 5a79596..8d5264f 100644 --- a/soft/PjtKEIL_StepDFT/Src/Signal.asm +++ b/soft/PjtKEIL_StepDFT/Src/Signal.asm @@ -1,68 +1,68 @@ AREA Signal, DATA, READONLY export LeSignal LeSignal - DCW 0x0fff ; 0 4095 0.99976 - DCW 0x0ff6 ; 1 4086 0.99756 - DCW 0x0fd9 ; 2 4057 0.99048 - DCW 0x0fa8 ; 3 4008 0.97852 - DCW 0x0f64 ; 4 3940 0.96191 - DCW 0x0f0e ; 5 3854 0.94092 - DCW 0x0ea7 ; 6 3751 0.91577 - DCW 0x0e2f ; 7 3631 0.88647 + DCW 0x0800 ; 0 2048 0.50000 + DCW 0x08c9 ; 1 2249 0.54907 + DCW 0x0990 ; 2 2448 0.59766 + DCW 0x0a53 ; 3 2643 0.64526 + DCW 0x0b10 ; 4 2832 0.69141 + DCW 0x0bc5 ; 5 3013 0.73560 + DCW 0x0c72 ; 6 3186 0.77783 + DCW 0x0d13 ; 7 3347 0.81714 DCW 0x0da8 ; 8 3496 0.85352 - DCW 0x0d13 ; 9 3347 0.81714 - DCW 0x0c72 ; 10 3186 0.77783 - DCW 0x0bc5 ; 11 3013 0.73560 - DCW 0x0b10 ; 12 2832 0.69141 - DCW 0x0a53 ; 13 2643 0.64526 - DCW 0x0990 ; 14 2448 0.59766 - DCW 0x08c9 ; 15 2249 0.54907 - DCW 0x0800 ; 16 2048 0.50000 - DCW 0x0737 ; 17 1847 0.45093 - DCW 0x0670 ; 18 1648 0.40234 - DCW 0x05ad ; 19 1453 0.35474 - DCW 0x04f0 ; 20 1264 0.30859 - DCW 0x043b ; 21 1083 0.26440 - DCW 0x038e ; 22 910 0.22217 - DCW 0x02ed ; 23 749 0.18286 - DCW 0x0258 ; 24 600 0.14648 - DCW 0x01d1 ; 25 465 0.11353 - DCW 0x0159 ; 26 345 0.08423 - DCW 0x00f2 ; 27 242 0.05908 - DCW 0x009c ; 28 156 0.03809 - DCW 0x0058 ; 29 88 0.02148 - DCW 0x0027 ; 30 39 0.00952 - DCW 0x000a ; 31 10 0.00244 - DCW 0x0000 ; 32 0 0.00000 - DCW 0x000a ; 33 10 0.00244 - DCW 0x0027 ; 34 39 0.00952 - DCW 0x0058 ; 35 88 0.02148 - DCW 0x009c ; 36 156 0.03809 - DCW 0x00f2 ; 37 242 0.05908 - DCW 0x0159 ; 38 345 0.08423 - DCW 0x01d1 ; 39 465 0.11353 + DCW 0x0e2f ; 9 3631 0.88647 + DCW 0x0ea7 ; 10 3751 0.91577 + DCW 0x0f0e ; 11 3854 0.94092 + DCW 0x0f64 ; 12 3940 0.96191 + DCW 0x0fa8 ; 13 4008 0.97852 + DCW 0x0fd9 ; 14 4057 0.99048 + DCW 0x0ff6 ; 15 4086 0.99756 + DCW 0x0fff ; 16 4095 0.99976 + DCW 0x0ff6 ; 17 4086 0.99756 + DCW 0x0fd9 ; 18 4057 0.99048 + DCW 0x0fa8 ; 19 4008 0.97852 + DCW 0x0f64 ; 20 3940 0.96191 + DCW 0x0f0e ; 21 3854 0.94092 + DCW 0x0ea7 ; 22 3751 0.91577 + DCW 0x0e2f ; 23 3631 0.88647 + DCW 0x0da8 ; 24 3496 0.85352 + DCW 0x0d13 ; 25 3347 0.81714 + DCW 0x0c72 ; 26 3186 0.77783 + DCW 0x0bc5 ; 27 3013 0.73560 + DCW 0x0b10 ; 28 2832 0.69141 + DCW 0x0a53 ; 29 2643 0.64526 + DCW 0x0990 ; 30 2448 0.59766 + DCW 0x08c9 ; 31 2249 0.54907 + DCW 0x0800 ; 32 2048 0.50000 + DCW 0x0737 ; 33 1847 0.45093 + DCW 0x0670 ; 34 1648 0.40234 + DCW 0x05ad ; 35 1453 0.35474 + DCW 0x04f0 ; 36 1264 0.30859 + DCW 0x043b ; 37 1083 0.26440 + DCW 0x038e ; 38 910 0.22217 + DCW 0x02ed ; 39 749 0.18286 DCW 0x0258 ; 40 600 0.14648 - DCW 0x02ed ; 41 749 0.18286 - DCW 0x038e ; 42 910 0.22217 - DCW 0x043b ; 43 1083 0.26440 - DCW 0x04f0 ; 44 1264 0.30859 - DCW 0x05ad ; 45 1453 0.35474 - DCW 0x0670 ; 46 1648 0.40234 - DCW 0x0737 ; 47 1847 0.45093 - DCW 0x0800 ; 48 2048 0.50000 - DCW 0x08c9 ; 49 2249 0.54907 - DCW 0x0990 ; 50 2448 0.59766 - DCW 0x0a53 ; 51 2643 0.64526 - DCW 0x0b10 ; 52 2832 0.69141 - DCW 0x0bc5 ; 53 3013 0.73560 - DCW 0x0c72 ; 54 3186 0.77783 - DCW 0x0d13 ; 55 3347 0.81714 - DCW 0x0da8 ; 56 3496 0.85352 - DCW 0x0e2f ; 57 3631 0.88647 - DCW 0x0ea7 ; 58 3751 0.91577 - DCW 0x0f0e ; 59 3854 0.94092 - DCW 0x0f64 ; 60 3940 0.96191 - DCW 0x0fa8 ; 61 4008 0.97852 - DCW 0x0fd9 ; 62 4057 0.99048 - DCW 0x0ff6 ; 63 4086 0.99756 + DCW 0x01d1 ; 41 465 0.11353 + DCW 0x0159 ; 42 345 0.08423 + DCW 0x00f2 ; 43 242 0.05908 + DCW 0x009c ; 44 156 0.03809 + DCW 0x0058 ; 45 88 0.02148 + DCW 0x0027 ; 46 39 0.00952 + DCW 0x000a ; 47 10 0.00244 + DCW 0x0000 ; 48 0 0.00000 + DCW 0x000a ; 49 10 0.00244 + DCW 0x0027 ; 50 39 0.00952 + DCW 0x0058 ; 51 88 0.02148 + DCW 0x009c ; 52 156 0.03809 + DCW 0x00f2 ; 53 242 0.05908 + DCW 0x0159 ; 54 345 0.08423 + DCW 0x01d1 ; 55 465 0.11353 + DCW 0x0258 ; 56 600 0.14648 + DCW 0x02ed ; 57 749 0.18286 + DCW 0x038e ; 58 910 0.22217 + DCW 0x043b ; 59 1083 0.26440 + DCW 0x04f0 ; 60 1264 0.30859 + DCW 0x05ad ; 61 1453 0.35474 + DCW 0x0670 ; 62 1648 0.40234 + DCW 0x0737 ; 63 1847 0.45093 END diff --git a/soft/PjtKEIL_StepDFT/Src/principal.c b/soft/PjtKEIL_StepDFT/Src/principal.c index 0c78338..0c0a455 100644 --- a/soft/PjtKEIL_StepDFT/Src/principal.c +++ b/soft/PjtKEIL_StepDFT/Src/principal.c @@ -3,6 +3,9 @@ #include "DriverJeuLaser.h" extern int DFTReel(short int *Signal, int k); +extern int DFTImage(short int *Signal, int k); +extern int DFTTotale(short int *Signal, int k); + extern short int LeSignal[]; int tabDFT[64]; int i; @@ -26,7 +29,7 @@ while (1) { for(i = 0;i<64;i++){ //tabDFT[0] = DFTReel(&(LeSignal[0]), 0); - tabDFT[i] = DFTReel(&(LeSignal[0]), i); + tabDFT[i] = DFTTotale(&(LeSignal[0]), i); //tabDFT[2] = DFTReel(&(LeSignal[0]), 2); } } diff --git a/soft/Signal.asm b/soft/Signal.asm new file mode 100644 index 0000000..8d5264f --- /dev/null +++ b/soft/Signal.asm @@ -0,0 +1,68 @@ + AREA Signal, DATA, READONLY + export LeSignal +LeSignal + DCW 0x0800 ; 0 2048 0.50000 + DCW 0x08c9 ; 1 2249 0.54907 + DCW 0x0990 ; 2 2448 0.59766 + DCW 0x0a53 ; 3 2643 0.64526 + DCW 0x0b10 ; 4 2832 0.69141 + DCW 0x0bc5 ; 5 3013 0.73560 + DCW 0x0c72 ; 6 3186 0.77783 + DCW 0x0d13 ; 7 3347 0.81714 + DCW 0x0da8 ; 8 3496 0.85352 + DCW 0x0e2f ; 9 3631 0.88647 + DCW 0x0ea7 ; 10 3751 0.91577 + DCW 0x0f0e ; 11 3854 0.94092 + DCW 0x0f64 ; 12 3940 0.96191 + DCW 0x0fa8 ; 13 4008 0.97852 + DCW 0x0fd9 ; 14 4057 0.99048 + DCW 0x0ff6 ; 15 4086 0.99756 + DCW 0x0fff ; 16 4095 0.99976 + DCW 0x0ff6 ; 17 4086 0.99756 + DCW 0x0fd9 ; 18 4057 0.99048 + DCW 0x0fa8 ; 19 4008 0.97852 + DCW 0x0f64 ; 20 3940 0.96191 + DCW 0x0f0e ; 21 3854 0.94092 + DCW 0x0ea7 ; 22 3751 0.91577 + DCW 0x0e2f ; 23 3631 0.88647 + DCW 0x0da8 ; 24 3496 0.85352 + DCW 0x0d13 ; 25 3347 0.81714 + DCW 0x0c72 ; 26 3186 0.77783 + DCW 0x0bc5 ; 27 3013 0.73560 + DCW 0x0b10 ; 28 2832 0.69141 + DCW 0x0a53 ; 29 2643 0.64526 + DCW 0x0990 ; 30 2448 0.59766 + DCW 0x08c9 ; 31 2249 0.54907 + DCW 0x0800 ; 32 2048 0.50000 + DCW 0x0737 ; 33 1847 0.45093 + DCW 0x0670 ; 34 1648 0.40234 + DCW 0x05ad ; 35 1453 0.35474 + DCW 0x04f0 ; 36 1264 0.30859 + DCW 0x043b ; 37 1083 0.26440 + DCW 0x038e ; 38 910 0.22217 + DCW 0x02ed ; 39 749 0.18286 + DCW 0x0258 ; 40 600 0.14648 + DCW 0x01d1 ; 41 465 0.11353 + DCW 0x0159 ; 42 345 0.08423 + DCW 0x00f2 ; 43 242 0.05908 + DCW 0x009c ; 44 156 0.03809 + DCW 0x0058 ; 45 88 0.02148 + DCW 0x0027 ; 46 39 0.00952 + DCW 0x000a ; 47 10 0.00244 + DCW 0x0000 ; 48 0 0.00000 + DCW 0x000a ; 49 10 0.00244 + DCW 0x0027 ; 50 39 0.00952 + DCW 0x0058 ; 51 88 0.02148 + DCW 0x009c ; 52 156 0.03809 + DCW 0x00f2 ; 53 242 0.05908 + DCW 0x0159 ; 54 345 0.08423 + DCW 0x01d1 ; 55 465 0.11353 + DCW 0x0258 ; 56 600 0.14648 + DCW 0x02ed ; 57 749 0.18286 + DCW 0x038e ; 58 910 0.22217 + DCW 0x043b ; 59 1083 0.26440 + DCW 0x04f0 ; 60 1264 0.30859 + DCW 0x05ad ; 61 1453 0.35474 + DCW 0x0670 ; 62 1648 0.40234 + DCW 0x0737 ; 63 1847 0.45093 + END