2023-03-14 16:21:55 +01:00
|
|
|
|
PRESERVE8
|
|
|
|
|
THUMB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; ====================== zone de r<>servation de donn<6E>es, ======================================
|
|
|
|
|
;Section RAM (read only) :
|
|
|
|
|
area mesdata,data,readonly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;Section RAM (read write):
|
|
|
|
|
area maram,data,readwrite
|
|
|
|
|
|
|
|
|
|
VarTime dcd 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; ===============================================================================================
|
|
|
|
|
|
|
|
|
|
;constantes (<28>quivalent du #define en C)
|
2023-03-21 18:23:19 +01:00
|
|
|
|
TimeValue equ 800000
|
2023-03-14 16:21:55 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EXPORT Delay_100ms ; la fonction Delay_100ms est rendue publique donc utilisable par d'autres modules.
|
2023-03-15 18:12:13 +01:00
|
|
|
|
EXPORT VarTime ; Permet la lecture de VarTime dans le debuggeur
|
2023-03-14 16:21:55 +01:00
|
|
|
|
|
|
|
|
|
;Section ROM code (read only) :
|
|
|
|
|
area moncode,code,readonly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; REMARQUE IMPORTANTE
|
|
|
|
|
; Cette mani<6E>re de cr<63>er une temporisation n'est clairement pas la bonne mani<6E>re de proc<6F>der :
|
|
|
|
|
; - elle est peu pr<70>cise
|
|
|
|
|
; - la fonction prend tout le temps CPU pour... ne rien faire...
|
|
|
|
|
;
|
|
|
|
|
; Pour autant, la fonction montre :
|
|
|
|
|
; - les boucles en ASM
|
|
|
|
|
; - l'acc<63>s <20>cr/lec de variable en RAM
|
|
|
|
|
; - le m<>canisme d'appel / retour sous programme
|
|
|
|
|
;
|
|
|
|
|
; et donc poss<73>de un int<6E>r<EFBFBD>t pour d<>buter en ASM pur
|
|
|
|
|
|
|
|
|
|
Delay_100ms proc
|
|
|
|
|
|
2023-03-15 18:12:13 +01:00
|
|
|
|
ldr r0,=VarTime
|
2023-03-14 16:21:55 +01:00
|
|
|
|
|
|
|
|
|
ldr r1,=TimeValue
|
2023-03-15 18:12:13 +01:00
|
|
|
|
str r1,[r0] ;VarTime = TimeValue
|
2023-03-14 16:21:55 +01:00
|
|
|
|
|
|
|
|
|
BoucleTempo
|
2023-03-15 18:12:13 +01:00
|
|
|
|
ldr r1,[r0] ;r1 = Vartime
|
2023-03-14 16:21:55 +01:00
|
|
|
|
|
|
|
|
|
subs r1,#1
|
2023-03-15 18:12:13 +01:00
|
|
|
|
str r1,[r0]
|
|
|
|
|
bne BoucleTempo ; si R1 != 0, va a BoucleTempo
|
2023-03-14 16:21:55 +01:00
|
|
|
|
|
|
|
|
|
bx lr
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
END
|