grpE_BENSEBAA_GROSS/soft/PjtKEIL_StepSon/Src/GestionSon.s
2023-04-19 09:42:18 +02:00

93 lines
No EOL
1.3 KiB
ArmAsm

PRESERVE8
THUMB
export CallbackSon
export StartSon
include DriverJeuLaser.inc
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
area mesdata,data,readonly
IMPORT LongueurSon
IMPORT Son
;Section RAM (read write):
area maram,data,readwrite
index dcd 0;
SortieSon dcw 0;
EXPORT SortieSon ; valeur echelle echantillon courant
; ===============================================================================================
;Section ROM code (read only) :
area moncode,code,readonly
; écrire le code ici
CallbackSon proc
push{lr}
ldr r0,=LongueurSon
ldr r1,=index ; @ index
ldr r2,[r1]
ldr r3,[r0]
cmp r2,r3
beq ret
ldr r0, =Son ; recuperer @ son
movs r2,r2,lsl #1
add r0,r2
ldrsh r2,[r0];valeur son
ldr r0, =SortieSon ;@ sortie son
;mise a l'echelle;
add r2,#32768
mov r3,#719
mul r2,r3
mov r2,r2,asr #16
; mettre a jour SortieSon
str r2,[r0]
push{r1}
mov r0,r2
bl PWM_Set_Value_TIM3_Ch3
pop{r1}
;incrementer index
ldr r0,[r1]; valeur index
add r0,#1;
str r0,[r1] ;mettre a jour index
ret
pop{pc}
bx lr
endp
StartSon proc
ldr r0,=index ; @ index
mov r1,#0
str r1,[r0]
bx lr
endp
END