PRESERVE8 THUMB ;include DriverJeuLaser.inc IMPORT Son IMPORT LongueurSon 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 FlagSon dcb 0 EXPORT FlagSon SortieSon dcd 0 EXPORT SortieSon Index dcw 0 EXPORT Index ; =============================================================================================== ;Exportation de la fonction callbackson() EXPORT callbackson ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici callbackson proc push{lr} push{r4} ldr r0, =SortieSon ; r0 = adresse de SortieSon ldr r1, [r0] ; r1 = valeur de SortieSon ldr r2, =Index ; r2 = adresse de Index ldr r3, [r2] ; r3 = valeur de Index SI ldr r0, =LongueurSon ldr r4, [r0] ; r4 = LongueurSon cmp r3, r4 bgt FINSI ALORS ldr r2, =Son ;Calcul de SortieSon ldrsh r1, [r2,r3,lsl #1] add r1, #32768 mov r2,#719 mul r1,r2 asr r1, #16 ;MAJ de SortieSon ldr r0, =SortieSon strh r1, [r0] ;incrémente Index add r3, #1 ldr r2, =Index str r3, [r2] ;Appel de la fonction modifiant le rapport cyclique mov r0,r1 bl PWM_Set_Value_TIM3_Ch3 FINSI pop{r4} pop {PC} endp END