Fin séance CHTI ASM 3
This commit is contained in:
parent
4550b7bcf7
commit
6c2fdcf46f
2 changed files with 31 additions and 23 deletions
|
@ -1,6 +1,7 @@
|
||||||
PRESERVE8
|
PRESERVE8
|
||||||
THUMB
|
THUMB
|
||||||
|
IMPORT Son
|
||||||
|
IMPORT LongueurSon
|
||||||
|
|
||||||
; ====================== zone de réservation de données, ======================================
|
; ====================== zone de réservation de données, ======================================
|
||||||
;Section RAM (read only) :
|
;Section RAM (read only) :
|
||||||
|
@ -13,13 +14,12 @@
|
||||||
FlagSon dcb 0
|
FlagSon dcb 0
|
||||||
EXPORT FlagSon
|
EXPORT FlagSon
|
||||||
|
|
||||||
SortieSon dcw 0
|
SortieSon dcd 0
|
||||||
EXPORT SortieSon
|
EXPORT SortieSon
|
||||||
|
|
||||||
Index dcw 0
|
Index dcw 0
|
||||||
EXPORT Index
|
EXPORT Index
|
||||||
|
|
||||||
;LDRD{cond} Rt, Rt2, [Rn, ±Rm] ; register offset, doubleword ; ARM only <-- INSTRUCTION A UTILISER
|
|
||||||
; ===============================================================================================
|
; ===============================================================================================
|
||||||
|
|
||||||
;Exportation de la fonction callbackson()
|
;Exportation de la fonction callbackson()
|
||||||
|
@ -32,30 +32,42 @@ Index dcw 0
|
||||||
; écrire le code ici
|
; écrire le code ici
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
callbackson proc
|
callbackson proc
|
||||||
|
|
||||||
push{lr}
|
push{lr}
|
||||||
ldr r1, =FlagSon ; on affecte à r1 l'adresse de FlagSon (r1 = pointeur sur FlagSon)
|
push{r4}
|
||||||
ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1
|
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
|
SI
|
||||||
cmp r2, #0 ; si Flag = 0
|
ldr r0, =LongueurSon
|
||||||
bne SINON
|
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]
|
||||||
|
|
||||||
ALORS ; on passe Flag à 1 + on allume B1
|
|
||||||
mov r2, #1
|
|
||||||
b FINSI
|
|
||||||
|
|
||||||
SINON ; sinon on passe Flag à 0 + on éteint B1
|
|
||||||
mov r2, #0
|
|
||||||
|
|
||||||
FINSI
|
FINSI
|
||||||
ldr r1, =FlagSon
|
|
||||||
str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagSon)
|
pop{r4}
|
||||||
|
|
||||||
pop {PC}
|
pop {PC}
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END
|
END
|
|
@ -1,9 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
#include "DriverJeuLaser.h"
|
#include "DriverJeuLaser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue