grpE_ROUSSEAU_NORGEUX/soft/PjtKEIL_StepSon/Src/GestionSon.s

80 lines
No EOL
1.1 KiB
ArmAsm

import PWM_Set_Value_TIM3_Ch3
PRESERVE8
THUMB
import Son
import LongueurSon
import PeriodeSonMicroSec
; ====================== 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
Index dcw 0
export SortieSon
; ===============================================================================================
;Section ROM code (read only) :
area moncode,code,readonly
; écrire le code ici
export timer_callback_son
timer_callback_son proc
push {lr,r4}
ldr r4,=Index
ldr r2,[r4]
mov r0, r2
ldr r1,=LongueurSon
ldr r2,[r1]
mov r1, r2
cmp r0, r1
beq fin
ldr r3,=SortieSon
ldr r2,=Son
ldrsh r1,[r2,r0, lsl #1]
add r1,#32768 ; (1<<16)
mov r2, #720
mul r1,r2
asr r1,#16
mov r4, r0
mov r0, r1
bl PWM_Set_Value_TIM3_Ch3
;str r1, [r3] ;Mise à jour sortie son pas PWM
str r0, [r3] ;Mise à jour sortie son PWM
mov r0, r4
mov r3, r0
add r3, #1
str r3, [r4]
fin
pop {lr,r4}
bx lr
endp
END