PRESERVE8 THUMB export CallbackSon export StartSon include DriverJeuLaser.inc ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly IMPORT LongueurSon IMPORT Son ;Section RAM (read write): area maram,data,readwrite index dcd 0; SortieSon dcw 0; EXPORT SortieSon ; valeur echelle echantillon courant ; =============================================================================================== ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici CallbackSon proc push{lr} ldr r0,=LongueurSon ldr r1,=index ; @ index ldr r2,[r1] ldr r3,[r0] cmp r2,r3 beq ret ldr r0, =Son ; recuperer @ son movs r2,r2,lsl #1 add r0,r2 ldrsh r2,[r0];valeur son ldr r0, =SortieSon ;@ sortie son ;mise a l'echelle; add r2,#32768 mov r3,#719 mul r2,r3 mov r2,r2,asr #16 ; mettre a jour SortieSon str r2,[r0] push{r1} mov r0,r2 bl PWM_Set_Value_TIM3_Ch3 pop{r1} ;incrementer index ldr r0,[r1]; valeur index add r0,#1; str r0,[r1] ;mettre a jour index ret pop{pc} bx lr endp StartSon proc ldr r0,=index ; @ index mov r1,#0 str r1,[r0] bx lr endp END