diff --git a/soft/PjtKEIL_StepSon/Src/GestionSon.s b/soft/PjtKEIL_StepSon/Src/GestionSon.s index 195e305..b4499bf 100644 --- a/soft/PjtKEIL_StepSon/Src/GestionSon.s +++ b/soft/PjtKEIL_StepSon/Src/GestionSon.s @@ -30,10 +30,10 @@ Index dcd 0x00000000 CallbackSon proc push {lr} - ldr r0, =SortieSon - ldr r1, =Son - ldr r2, =Index - ldr r3, =LongueurSon + ldr r0, =SortieSon ; r0 = &SortieSon car SortieSon variable + ldr r1, =Son ; r1 = &Son + ldr r2, =Index ; r2 = &Index + ldr r3, =LongueurSon ; r3 = &LongueurSon push {r4} push {r5} push {r6} @@ -42,9 +42,9 @@ CallbackSon proc push {r9} push {r10} push {r11} - ldr r4, [r2] ;on stocke la valeur de l'index dans r4. - ldr r10, [r2] ;on stocke la valeur de l'index dans r4. - ldr r11, [r3] + ldr r4, [r2] ; r4 = Index + ldr r10, [r2] ; r10 = Index + ldr r11, [r3] ; r11 = LongueurSon cmp r10, r11 bne notEqual push {r12} @@ -64,18 +64,18 @@ CallbackSon proc notEqual mov r9, #2 - mul r4, r9 - ldrsh r5, [r1, r4] ;on stocke la valeur de Son[index] dans r5; - ldr r6, [r0] ; on stocke la valeur de SortieSon dans r6 + mul r4, r9 ; r4 = 2*Index + ldrsh r5, [r1, r4] ; r5 = Son[(2*)Index] //ldrsh car 16 bits signés + ldr r6, [r0] ; r6 = SortieSon mov r7, #360 mov r8, #32768 mul r5, r7 sdiv r5, r8 - adds r5, #360 - strh r5, [r0] ; on stocke la valeur calculee dans r0 + adds r5, #360 ; r5 = (r6*360)/32768 + 360 pour la mise à l'échelle entre 0 et 719 des valauers de SortieSon + strh r5, [r0] ;SortieSon chargée dans la mémoire //strh car 16 bits signe positif mov r0, r5 - adds r10, #1; on incremente r4 qui correspond à la valeur de l'index - str r10, [r2] + adds r10, #1; r10 = Index++ + str r10, [r2] ;Index chargée dans la mémoire //str car 32 bits pop {r11} pop {r10} pop {r9} @@ -89,9 +89,9 @@ notEqual ENDFUNC StartSon proc - ldr r0, =Index - mov r1, #0 - str r1, [r0] + ldr r0, =Index; r0 = &Index + mov r1, #0 ; r1 = 0 + str r1, [r0] ;Index chargée dans la mémoire //str car 32 bits bx lr ENDFUNC