class done
This commit is contained in:
59
lab7interrupts/Src/delay.s
Normal file
59
lab7interrupts/Src/delay.s
Normal file
@@ -0,0 +1,59 @@
|
||||
# delay.s
|
||||
# Trevor Barnes
|
||||
# CE2801-031
|
||||
# Description: A file for handling delay routines
|
||||
|
||||
.syntax unified
|
||||
.cpu cortex-m4
|
||||
.thumb
|
||||
.section .text
|
||||
|
||||
.global msDelay
|
||||
# A subroutine to create a delay of a certain number of milliseconds
|
||||
# Input:
|
||||
# r0: Length of delay (ms)
|
||||
msDelay:
|
||||
|
||||
push {r1,r2,r3,lr}
|
||||
mov r3,r0
|
||||
ms_delay:
|
||||
# 250 iterations = 1/16 of a millisecond
|
||||
mov r2, #0x10
|
||||
# Loop 16 times
|
||||
1:
|
||||
# 250
|
||||
mov r1, #0xFA
|
||||
# Loop 250 times
|
||||
2:
|
||||
sub r1, #1
|
||||
cmp r1, #0
|
||||
bne 2b
|
||||
|
||||
sub r2, #1
|
||||
cmp r2, #0
|
||||
bne 1b
|
||||
|
||||
sub r0, #1
|
||||
cmp r0, #0
|
||||
bne ms_delay
|
||||
|
||||
mov r0,r3
|
||||
pop {r1,r2,r3,pc}
|
||||
|
||||
.global usDelay
|
||||
# about r1 mircoseonds
|
||||
usDelay:
|
||||
# stack
|
||||
push {lr}
|
||||
|
||||
lsl r1, r1, #3
|
||||
|
||||
1:
|
||||
sub r1, r1, #1
|
||||
cmp r1, #0
|
||||
bne 1b
|
||||
|
||||
# return
|
||||
pop {pc}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user