PRESERVE8 THUMB ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly ;Section RAM (read write): area maram,data,readwrite ; =============================================================================================== include ../Driver/DriverJeuLaser.inc export CallbackSon export SortieSon extern LongueurSon extern Son Index DCD 0 SortieSon DCW 0 ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici CallbackSon proc ldr r0,=Index ldr r1,[r0] ldr r2,=Son ldr r3,LongueurSon cmp r1,r3 ble notEqual notEqual push {r4} push {r5} ldrsh r5,[r2,r1] mov r4,#32768 add r5,r5,r4 mov r4,#719 mul r5,r4 mov r4,#65535 udiv r5,r4 push {r6} ldr r6,=SortieSon strh r5,[r6] add r1, #2 str r1,[r0] pop{r6} pop {r4} pop {r5} bx lr ENDFUNC END