PRESERVE8 THUMB include ../Driver/DriverJeuLaser.inc; ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly ;Section RAM (read write): area maram,data,readwrite index dcd 0 SortieSon dcw 0 export index export SortieSon export Callbackson export StartSon extern Son extern LongueurSon ; =============================================================================================== ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici ;r0 Son ;r1 Index ;r2 Adresse index ;r3 Pour les calculs StartSon proc ldr r0, =index mov r1, #0 str r1,[r0] bx lr endp Callbackson proc ldr r2, =index ldr r1, [r2] ldr r3, =LongueurSon ldr r3, [r3] mov r0, #2 mul r3, r0 cmp r3, r1 bhs Conversion mov r0,#-1 b fin Conversion ldr r0, =Son ldrsh r0, [r0,r1] add r0, #32768 mov r3, #719 mul r0, r3 mov r3, #65535 udiv r0, r3 add r1, #2 str r1, [r2] fin push{lr, r2, r1, r0} bl PWM_Set_Value_TIM3_Ch3 pop{lr, r2, r1, r0} ldr r3, =SortieSon str r0,[r3] bx lr endp END