chti23/soft/PjtKEIL_StepSon/Src/GestionSon.s
2023-04-18 17:16:24 +02:00

97 lines
1.2 KiB
ArmAsm

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