forked from acco/chti23
78 lines
No EOL
1.3 KiB
ArmAsm
78 lines
No EOL
1.3 KiB
ArmAsm
PRESERVE8
|
|
THUMB
|
|
;include DriverJeuLaser.inc
|
|
IMPORT Son
|
|
IMPORT LongueurSon
|
|
IMPORT PWM_Set_Value_TIM3_Ch3
|
|
|
|
; ====================== zone de réservation de données, ======================================
|
|
;Section RAM (read only) :
|
|
area mesdata,data,readonly
|
|
|
|
|
|
;Section RAM (read write):
|
|
area maram,data,readwrite
|
|
|
|
FlagSon dcb 0
|
|
EXPORT FlagSon
|
|
|
|
SortieSon dcd 0
|
|
EXPORT SortieSon
|
|
|
|
Index dcw 0
|
|
EXPORT Index
|
|
|
|
; ===============================================================================================
|
|
|
|
;Exportation de la fonction callbackson()
|
|
EXPORT callbackson
|
|
|
|
|
|
|
|
;Section ROM code (read only) :
|
|
area moncode,code,readonly
|
|
; écrire le code ici
|
|
|
|
|
|
|
|
callbackson proc
|
|
|
|
push{lr}
|
|
push{r4}
|
|
ldr r0, =SortieSon ; r0 = adresse de SortieSon
|
|
ldr r1, [r0] ; r1 = valeur de SortieSon
|
|
|
|
ldr r2, =Index ; r2 = adresse de Index
|
|
ldr r3, [r2] ; r3 = valeur de Index
|
|
|
|
SI
|
|
ldr r0, =LongueurSon
|
|
ldr r4, [r0] ; r4 = LongueurSon
|
|
cmp r3, r4
|
|
bgt FINSI
|
|
ALORS
|
|
ldr r2, =Son
|
|
;Calcul de SortieSon
|
|
ldrsh r1, [r2,r3,lsl #1]
|
|
add r1, #32768
|
|
mov r2,#719
|
|
mul r1,r2
|
|
asr r1, #16
|
|
;MAJ de SortieSon
|
|
ldr r0, =SortieSon
|
|
strh r1, [r0]
|
|
;incrémente Index
|
|
add r3, #1
|
|
ldr r2, =Index
|
|
str r3, [r2]
|
|
;Appel de la fonction modifiant le rapport cyclique
|
|
mov r0,r1
|
|
bl PWM_Set_Value_TIM3_Ch3
|
|
|
|
FINSI
|
|
|
|
pop{r4}
|
|
pop {PC}
|
|
endp
|
|
|
|
END
|