chti23/soft/PjtKEIL_StepSon/Src/GestionSon.s
2023-04-11 18:19:40 +02:00

83 lines
1.1 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
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
Callbackson
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,#0
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
strh r0,[r3]
bx lr
END