Hardware Reference
In-Depth Information
Example 2.25
Write an instruction sequence to create a 100-ms time delay for a demo board with a
24-MHz bus clock.
Solution: In order to create a 100-ms time delay, we need to repeat the preceding instruction
sequence 60,000 times [100 ms ÷ (40 ÷ 24,000,000)
μ
s 5 60,000]. The following instruction
sequence will create the desired delay:
ldx
#60000
; 2 E cycles
loop
psha
; 2 E cycles
pula
; 3 E cycles
psha
; 2 E cycles
pula
; 3 E cycles
psha
; 2 E cycles
pula
; 3 E cycles
psha
; 2 E cycles
pula
; 3 E cycles
psha
; 2 E cycles
pula
; 3 E cycles
psha
; 2 E cycles
pula
; 3 E cycles
psha
; 2 E cycles
pula
; 3 E cycles
nop
; 1 E cycle
nop
; 1 E cycle
dbne
x,loop
; 3 E cycles
Example 2.26
Write an instruction sequence to create a delay of 10 sec.
Solution: The instruction sequence in Example 2.25 can only create a delay slightly longer than
100 ms. In order to create a longer time delay, we need to use a two-layer loop. For example, the
following instruction sequence will create a 10-sec delay:
ldab
#100
; 1 E cycle
out_loop
ldx
#60000
; 2 E cycles
inner_loop psha
pula
psha
pula
psha
pula
psha
pula
psha
pula
psha
pula
Search WWH ::




Custom Search