v1 Stable
Dependencies: F401RE-USBHost USBHostXpad mbed
my_wait_us_asm.s
- Committer:
- Ownasaurus
- Date:
- 2017-04-15
- Revision:
- 13:d7c1aae2b48f
- Parent:
- 0:eb2258e8c4b5
File content as of revision 13:d7c1aae2b48f:
AREA asm_func, CODE, READONLY EXPORT my_wait_us_asm my_wait_us_asm WAIT_1_US ; According to ARM spec, NOPs may be removed by the assembler, so they ; are not a reliable way to eat up time. Instead we simply do empty adds ; to eat up clock cycles. ; My board operates at 180 MHz. Assuming each instruction is 1 clock cycle, ; 180 instructions should take 1 microsecond ADD R1, R2, #0 ; clock cycle 1 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 10 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 20 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 20 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 30 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 50 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 60 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 70 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 80 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 90 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 100 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 110 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 120 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 130 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 140 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 150 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 160 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 170 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ADD R1, R2, #0 ; clock cycle 178 SUBS R0, R0, #1 ; clock cycle 179 BGT WAIT_1_US ; clock cycle 180 BX LR ; return END