95 行
EOLなし
1.3 KiB
ArmAsm
95 行
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
|
|
;ldrsh r2,[r0,r2 lsl 1]
|
|
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
|