PRESERVE8 THUMB export CallbackSon export index export SortieSon export StartSon import LongueurSon import Son import PWM_Set_Value_TIM3_Ch3 ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly ;Section RAM (read write): area maram,data,readwrite SortieSon dcw 0 index dcd 0 ; =============================================================================================== ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici CallbackSon proc push {lr,r4-r7} ldr r4,=LongueurSon ldr r4,[r4] ldr r2,=index ldr r7,[r2] ;r7 = valeur de index cmp r4,r7 bne alors sinon b finsi alors ldr r3,=SortieSon ldr r1,=Son ldrsh r0,[r1,r7,lsl#1] ; R0 = *(R1+2*R7 ) R0 = R1[R7] mov r5,#32768 add r0,r5 mov r6,#719 mul r0,r6 ;ldr r6,=23560192 ;719*32768 asr r0,#16 ; décalage de 16 ;add r0,r6 ; mise à jour de SortieSon strh r0,[r3] ;ldr r3,[r0] ; mettre à jour la PWM bl PWM_Set_Value_TIM3_Ch3 ;on appelle la fonction avec r0 en paramètre add r7,#1 ;index=index+1 str r7,[r2] ; *R2 = R7 finsi pop {lr,r4-r7} bx lr endp StartSon proc ldr r0,=index ldr r1,[r0] mov r1,#0 str r1,[r0] bx lr endp END