chti23/soft/PjtKEIL_StepSon/Src/GestionSon.s

71 lines
No EOL
1.1 KiB
ArmAsm

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
SortieSon dcw 0
export SortieSon
export CallbackSon
Index dcd 0
export Index
; ===============================================================================================
;static short int SortieSon;
;static int i
;if (i<LongueurSon){
;SortieSon=(Son[i]+32768)*719/65535;
;i+=1
;}
;Section ROM code (read only) :
area moncode,code,readonly
import Son
import LongueurSon
import PWM_Set_Value_TIM3_Ch3
; écrire le code ici
CallbackSon proc
push {r3}
ldr r1,=LongueurSon
ldr r1,[r1]
;static int i
ldr r0, =Index
ldrsh r2,[r0]
;if (i<LongueurSon)
cmp r2, r1
beq arret
;SortieSon=(Son[i]+32768)*719/65535;
ldr r1, =Son
ldrsh r3, [r1, r2, lsl #1]
mov r1, #0x8000
add r3, r1
mov r1, #0x2CF
mul r3, r1
mov r1, #0xFFFF
udiv r3, r1
ldr r4,=SortieSon
strh r3,[r4]
;i+=1
add r2, #1
str r2,[r0]
;bl PWM_Set_Value_TIM3_Ch3; mis @ de la sortie PWM
pop {r3}
arret
bx lr
endp
END