grpE_RAMOUCHE_CASEAU/dossier/soft/PjtKEIL_StepDeb_2/Src/Cligno.s

54 lines
No EOL
1.2 KiB
ArmAsm

PRESERVE8
THUMB
include DriverJeuLaser.inc
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
area mesdata,data,readonly
;Section RAM (read write):
area maram,data,readwrite
FlagCligno dcd 0
EXPORT FlagCligno
; ===============================================================================================
;Exportation de la fonction timer_callback()
EXPORT timer_callback
;Section ROM code (read only) :
area moncode,code,readonly
; écrire le code ici
timer_callback proc
push{lr}
ldr r1, =FlagCligno ; on affecte à r1 l'adresse de FlagCligno (r1 = pointeur sur FlagCligno)
ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1
SI
cmp r2, #0 ; si Flag = 0
bne SINON
ALORS ; on passe Flag à 1 + on allume B1
mov r2, #1
mov r0, #1 ; sert juste à passer 1 en argument à GPIOB_Set
bl GPIOB_Set
b FINSI
SINON ; sinon on passe Flag à 0 + on éteint B1
mov r2, #0
mov r0, #1 ; sert juste à passer 1 en argument à GPIOB_Set
bl GPIOB_Clear
FINSI
ldr r1, =FlagCligno
str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagCligno)
pop {PC}
endp
END