v1 Stable

Dependencies:   F401RE-USBHost USBHostXpad mbed

Committer:
Ownasaurus
Date:
Sat Apr 15 14:00:16 2017 +0000
Revision:
13:d7c1aae2b48f
Parent:
0:eb2258e8c4b5
fixed sensitivity bug; changed default deadzone/sensitivity

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ownasaurus 0:eb2258e8c4b5 1 AREA asm_func, CODE, READONLY
Ownasaurus 0:eb2258e8c4b5 2 EXPORT my_wait_us_asm
Ownasaurus 0:eb2258e8c4b5 3
Ownasaurus 0:eb2258e8c4b5 4 my_wait_us_asm
Ownasaurus 0:eb2258e8c4b5 5
Ownasaurus 0:eb2258e8c4b5 6 WAIT_1_US
Ownasaurus 0:eb2258e8c4b5 7 ; According to ARM spec, NOPs may be removed by the assembler, so they
Ownasaurus 0:eb2258e8c4b5 8 ; are not a reliable way to eat up time. Instead we simply do empty adds
Ownasaurus 0:eb2258e8c4b5 9 ; to eat up clock cycles.
Ownasaurus 0:eb2258e8c4b5 10
Ownasaurus 0:eb2258e8c4b5 11 ; My board operates at 180 MHz. Assuming each instruction is 1 clock cycle,
Ownasaurus 0:eb2258e8c4b5 12 ; 180 instructions should take 1 microsecond
Ownasaurus 0:eb2258e8c4b5 13
Ownasaurus 0:eb2258e8c4b5 14 ADD R1, R2, #0 ; clock cycle 1
Ownasaurus 0:eb2258e8c4b5 15 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 16 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 17 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 18 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 19 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 20 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 21 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 22 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 23 ADD R1, R2, #0 ; clock cycle 10
Ownasaurus 0:eb2258e8c4b5 24 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 25 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 26 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 27 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 28 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 29 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 30 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 31 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 32 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 33 ADD R1, R2, #0 ; clock cycle 20
Ownasaurus 0:eb2258e8c4b5 34 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 35 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 36 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 37 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 38 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 39 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 40 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 41 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 42 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 43 ADD R1, R2, #0 ; clock cycle 20
Ownasaurus 0:eb2258e8c4b5 44 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 45 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 46 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 47 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 48 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 49 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 50 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 51 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 52 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 53 ADD R1, R2, #0 ; clock cycle 30
Ownasaurus 0:eb2258e8c4b5 54 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 55 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 56 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 57 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 58 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 59 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 60 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 61 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 62 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 63 ADD R1, R2, #0 ; clock cycle 50
Ownasaurus 0:eb2258e8c4b5 64 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 65 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 66 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 67 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 68 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 69 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 70 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 71 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 72 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 73 ADD R1, R2, #0 ; clock cycle 60
Ownasaurus 0:eb2258e8c4b5 74 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 75 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 76 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 77 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 78 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 79 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 80 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 81 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 82 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 83 ADD R1, R2, #0 ; clock cycle 70
Ownasaurus 0:eb2258e8c4b5 84 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 85 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 86 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 87 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 88 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 89 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 90 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 91 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 92 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 93 ADD R1, R2, #0 ; clock cycle 80
Ownasaurus 0:eb2258e8c4b5 94 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 95 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 96 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 97 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 98 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 99 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 100 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 101 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 102 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 103 ADD R1, R2, #0 ; clock cycle 90
Ownasaurus 0:eb2258e8c4b5 104 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 105 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 106 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 107 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 108 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 109 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 110 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 111 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 112 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 113 ADD R1, R2, #0 ; clock cycle 100
Ownasaurus 0:eb2258e8c4b5 114 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 115 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 116 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 117 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 118 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 119 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 120 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 121 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 122 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 123 ADD R1, R2, #0 ; clock cycle 110
Ownasaurus 0:eb2258e8c4b5 124 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 125 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 126 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 127 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 128 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 129 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 130 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 131 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 132 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 133 ADD R1, R2, #0 ; clock cycle 120
Ownasaurus 0:eb2258e8c4b5 134 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 135 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 136 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 137 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 138 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 139 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 140 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 141 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 142 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 143 ADD R1, R2, #0 ; clock cycle 130
Ownasaurus 0:eb2258e8c4b5 144 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 145 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 146 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 147 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 148 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 149 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 150 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 151 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 152 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 153 ADD R1, R2, #0 ; clock cycle 140
Ownasaurus 0:eb2258e8c4b5 154 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 155 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 156 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 157 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 158 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 159 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 160 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 161 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 162 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 163 ADD R1, R2, #0 ; clock cycle 150
Ownasaurus 0:eb2258e8c4b5 164 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 165 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 166 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 167 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 168 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 169 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 170 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 171 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 172 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 173 ADD R1, R2, #0 ; clock cycle 160
Ownasaurus 0:eb2258e8c4b5 174 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 175 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 176 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 177 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 178 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 179 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 180 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 181 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 182 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 183 ADD R1, R2, #0 ; clock cycle 170
Ownasaurus 0:eb2258e8c4b5 184 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 185 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 186 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 187 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 188 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 189 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 190 ADD R1, R2, #0
Ownasaurus 0:eb2258e8c4b5 191 ADD R1, R2, #0 ; clock cycle 178
Ownasaurus 0:eb2258e8c4b5 192
Ownasaurus 0:eb2258e8c4b5 193 SUBS R0, R0, #1 ; clock cycle 179
Ownasaurus 0:eb2258e8c4b5 194 BGT WAIT_1_US ; clock cycle 180
Ownasaurus 0:eb2258e8c4b5 195
Ownasaurus 0:eb2258e8c4b5 196 BX LR ; return
Ownasaurus 0:eb2258e8c4b5 197 END