This library lets you control the addressable RGB LED strips from Pololu Robotics. Forked to add selectable colour order (Support RGB or GRB Leds)

Fork of PololuLedStrip by David Grayson

Committer:
DavidEGrayson
Date:
Thu Feb 28 00:42:44 2013 +0000
Revision:
4:d3b60bd43811
Parent:
0:06475317f283
Child:
5:690fdfb595de
Proof of the concept that we can achieve variable delays by jumping into a particular portion of a large subroutine with noops.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DavidEGrayson 0:06475317f283 1 AREA asm_func, CODE, READONLY
DavidEGrayson 0:06475317f283 2 EXPORT led_strip_write_color
DavidEGrayson 0:06475317f283 3
DavidEGrayson 0:06475317f283 4 led_strip_write_color
DavidEGrayson 4:d3b60bd43811 5 push {r4, r12, r7}
DavidEGrayson 0:06475317f283 6
DavidEGrayson 0:06475317f283 7 ldr r12, [r0] ; Read the next color.
DavidEGrayson 0:06475317f283 8 rbit r12, r12 ; Reverse the order of the bits.
DavidEGrayson 0:06475317f283 9 rev r12, r12 ; Reverse the order of the bytes.
DavidEGrayson 0:06475317f283 10 mov r7, #24 ; Initialize the loop counter register.
DavidEGrayson 0:06475317f283 11
DavidEGrayson 0:06475317f283 12 send_led_strip_bit
DavidEGrayson 0:06475317f283 13 str r3, [r1] ; Drive the line high.
DavidEGrayson 0:06475317f283 14 rrxs r12, r12 ; Rotate right through carry.
DavidEGrayson 0:06475317f283 15
DavidEGrayson 0:06475317f283 16 nop
DavidEGrayson 0:06475317f283 17 nop
DavidEGrayson 0:06475317f283 18 nop
DavidEGrayson 0:06475317f283 19 nop
DavidEGrayson 0:06475317f283 20 nop
DavidEGrayson 0:06475317f283 21 nop
DavidEGrayson 0:06475317f283 22 nop
DavidEGrayson 0:06475317f283 23 nop
DavidEGrayson 0:06475317f283 24 nop
DavidEGrayson 0:06475317f283 25 nop
DavidEGrayson 0:06475317f283 26
DavidEGrayson 0:06475317f283 27 nop
DavidEGrayson 0:06475317f283 28 nop
DavidEGrayson 0:06475317f283 29 nop
DavidEGrayson 0:06475317f283 30 nop
DavidEGrayson 0:06475317f283 31 nop
DavidEGrayson 0:06475317f283 32 nop
DavidEGrayson 0:06475317f283 33 nop
DavidEGrayson 0:06475317f283 34 nop
DavidEGrayson 0:06475317f283 35 nop
DavidEGrayson 0:06475317f283 36 nop
DavidEGrayson 0:06475317f283 37
DavidEGrayson 0:06475317f283 38 nop
DavidEGrayson 0:06475317f283 39 nop
DavidEGrayson 0:06475317f283 40 nop
DavidEGrayson 0:06475317f283 41 nop
DavidEGrayson 0:06475317f283 42 nop
DavidEGrayson 0:06475317f283 43 nop
DavidEGrayson 0:06475317f283 44 nop
DavidEGrayson 0:06475317f283 45 nop
DavidEGrayson 0:06475317f283 46 nop
DavidEGrayson 0:06475317f283 47 nop
DavidEGrayson 0:06475317f283 48
DavidEGrayson 0:06475317f283 49 nop
DavidEGrayson 0:06475317f283 50 nop
DavidEGrayson 0:06475317f283 51 nop
DavidEGrayson 0:06475317f283 52 nop
DavidEGrayson 0:06475317f283 53 nop
DavidEGrayson 0:06475317f283 54 nop
DavidEGrayson 0:06475317f283 55 nop
DavidEGrayson 0:06475317f283 56 nop
DavidEGrayson 0:06475317f283 57 nop
DavidEGrayson 0:06475317f283 58 nop
DavidEGrayson 0:06475317f283 59
DavidEGrayson 0:06475317f283 60 nop
DavidEGrayson 0:06475317f283 61 nop
DavidEGrayson 0:06475317f283 62 nop
DavidEGrayson 0:06475317f283 63 nop
DavidEGrayson 0:06475317f283 64 nop
DavidEGrayson 0:06475317f283 65 nop
DavidEGrayson 0:06475317f283 66 nop
DavidEGrayson 0:06475317f283 67 nop
DavidEGrayson 0:06475317f283 68 nop
DavidEGrayson 0:06475317f283 69 nop
DavidEGrayson 0:06475317f283 70
DavidEGrayson 0:06475317f283 71 nop
DavidEGrayson 0:06475317f283 72 nop
DavidEGrayson 0:06475317f283 73 nop
DavidEGrayson 0:06475317f283 74 nop
DavidEGrayson 0:06475317f283 75 nop
DavidEGrayson 0:06475317f283 76 nop
DavidEGrayson 0:06475317f283 77 nop
DavidEGrayson 0:06475317f283 78 nop
DavidEGrayson 0:06475317f283 79 nop
DavidEGrayson 0:06475317f283 80 nop
DavidEGrayson 0:06475317f283 81
DavidEGrayson 0:06475317f283 82 nop
DavidEGrayson 0:06475317f283 83 nop
DavidEGrayson 0:06475317f283 84 nop
DavidEGrayson 0:06475317f283 85 nop
DavidEGrayson 0:06475317f283 86
DavidEGrayson 0:06475317f283 87 it cc ; If the bit to send it 0...
DavidEGrayson 0:06475317f283 88 strcc r3, [r2] ; Drive the line low.
DavidEGrayson 0:06475317f283 89
DavidEGrayson 0:06475317f283 90 nop
DavidEGrayson 0:06475317f283 91 nop
DavidEGrayson 0:06475317f283 92 nop
DavidEGrayson 0:06475317f283 93 nop
DavidEGrayson 0:06475317f283 94 nop
DavidEGrayson 0:06475317f283 95 nop
DavidEGrayson 0:06475317f283 96 nop
DavidEGrayson 0:06475317f283 97 nop
DavidEGrayson 0:06475317f283 98 nop
DavidEGrayson 0:06475317f283 99 nop
DavidEGrayson 0:06475317f283 100
DavidEGrayson 0:06475317f283 101 nop
DavidEGrayson 0:06475317f283 102 nop
DavidEGrayson 0:06475317f283 103 nop
DavidEGrayson 0:06475317f283 104 nop
DavidEGrayson 0:06475317f283 105 nop
DavidEGrayson 0:06475317f283 106 nop
DavidEGrayson 0:06475317f283 107 nop
DavidEGrayson 0:06475317f283 108 nop
DavidEGrayson 0:06475317f283 109 nop
DavidEGrayson 0:06475317f283 110 nop
DavidEGrayson 0:06475317f283 111
DavidEGrayson 0:06475317f283 112 nop
DavidEGrayson 0:06475317f283 113 nop
DavidEGrayson 0:06475317f283 114 nop
DavidEGrayson 0:06475317f283 115 nop
DavidEGrayson 0:06475317f283 116 nop
DavidEGrayson 0:06475317f283 117 nop
DavidEGrayson 0:06475317f283 118 nop
DavidEGrayson 0:06475317f283 119 nop
DavidEGrayson 0:06475317f283 120 nop
DavidEGrayson 0:06475317f283 121 nop
DavidEGrayson 0:06475317f283 122
DavidEGrayson 0:06475317f283 123 nop
DavidEGrayson 0:06475317f283 124 nop
DavidEGrayson 0:06475317f283 125 nop
DavidEGrayson 0:06475317f283 126 nop
DavidEGrayson 0:06475317f283 127 nop
DavidEGrayson 0:06475317f283 128 nop
DavidEGrayson 0:06475317f283 129 nop
DavidEGrayson 0:06475317f283 130 nop
DavidEGrayson 0:06475317f283 131 nop
DavidEGrayson 0:06475317f283 132 nop
DavidEGrayson 0:06475317f283 133
DavidEGrayson 0:06475317f283 134 nop
DavidEGrayson 0:06475317f283 135 nop
DavidEGrayson 0:06475317f283 136 nop
DavidEGrayson 0:06475317f283 137 nop
DavidEGrayson 0:06475317f283 138 nop
DavidEGrayson 0:06475317f283 139 nop
DavidEGrayson 0:06475317f283 140 nop
DavidEGrayson 0:06475317f283 141 nop
DavidEGrayson 0:06475317f283 142 nop
DavidEGrayson 0:06475317f283 143 nop
DavidEGrayson 0:06475317f283 144
DavidEGrayson 0:06475317f283 145 nop
DavidEGrayson 0:06475317f283 146 nop
DavidEGrayson 0:06475317f283 147 nop
DavidEGrayson 0:06475317f283 148 nop
DavidEGrayson 0:06475317f283 149 nop
DavidEGrayson 0:06475317f283 150 nop
DavidEGrayson 0:06475317f283 151 nop
DavidEGrayson 0:06475317f283 152 nop
DavidEGrayson 0:06475317f283 153 nop
DavidEGrayson 0:06475317f283 154
DavidEGrayson 0:06475317f283 155
DavidEGrayson 0:06475317f283 156 it cs ; If the bit to send is 1...
DavidEGrayson 0:06475317f283 157 strcs r3, [r2] ; Drive the line low.
DavidEGrayson 0:06475317f283 158
DavidEGrayson 4:d3b60bd43811 159 ldr r4, =delay_region
DavidEGrayson 4:d3b60bd43811 160 add r4, r4, 34*2
DavidEGrayson 4:d3b60bd43811 161 blx r4
DavidEGrayson 4:d3b60bd43811 162
DavidEGrayson 4:d3b60bd43811 163 sub r7, r7, #1 ; Decrement the loop counter.
DavidEGrayson 4:d3b60bd43811 164 cbz r7, led_strip_asm_end ; If we have sent 24 bits, go to the end.
DavidEGrayson 4:d3b60bd43811 165 b send_led_strip_bit ; Otherwise, go back and send another bit.
DavidEGrayson 4:d3b60bd43811 166
DavidEGrayson 4:d3b60bd43811 167 led_strip_asm_end
DavidEGrayson 4:d3b60bd43811 168 pop {r4, r12, r7}
DavidEGrayson 4:d3b60bd43811 169 bx lr
DavidEGrayson 4:d3b60bd43811 170
DavidEGrayson 4:d3b60bd43811 171
DavidEGrayson 4:d3b60bd43811 172 delay_region
DavidEGrayson 4:d3b60bd43811 173 ; The following is 128 no-ops
DavidEGrayson 0:06475317f283 174 nop
DavidEGrayson 0:06475317f283 175 nop
DavidEGrayson 0:06475317f283 176 nop
DavidEGrayson 0:06475317f283 177 nop
DavidEGrayson 0:06475317f283 178 nop
DavidEGrayson 0:06475317f283 179 nop
DavidEGrayson 0:06475317f283 180 nop
DavidEGrayson 0:06475317f283 181 nop
DavidEGrayson 0:06475317f283 182 nop
DavidEGrayson 0:06475317f283 183 nop
DavidEGrayson 0:06475317f283 184 nop
DavidEGrayson 0:06475317f283 185 nop
DavidEGrayson 0:06475317f283 186 nop
DavidEGrayson 4:d3b60bd43811 187 nop
DavidEGrayson 4:d3b60bd43811 188 nop
DavidEGrayson 4:d3b60bd43811 189 nop
DavidEGrayson 4:d3b60bd43811 190
DavidEGrayson 0:06475317f283 191 nop
DavidEGrayson 0:06475317f283 192 nop
DavidEGrayson 0:06475317f283 193 nop
DavidEGrayson 0:06475317f283 194 nop
DavidEGrayson 0:06475317f283 195 nop
DavidEGrayson 0:06475317f283 196 nop
DavidEGrayson 0:06475317f283 197 nop
DavidEGrayson 0:06475317f283 198 nop
DavidEGrayson 0:06475317f283 199 nop
DavidEGrayson 0:06475317f283 200 nop
DavidEGrayson 0:06475317f283 201 nop
DavidEGrayson 0:06475317f283 202 nop
DavidEGrayson 0:06475317f283 203 nop
DavidEGrayson 0:06475317f283 204 nop
DavidEGrayson 0:06475317f283 205 nop
DavidEGrayson 0:06475317f283 206 nop
DavidEGrayson 4:d3b60bd43811 207
DavidEGrayson 0:06475317f283 208 nop
DavidEGrayson 0:06475317f283 209 nop
DavidEGrayson 0:06475317f283 210 nop
DavidEGrayson 0:06475317f283 211 nop
DavidEGrayson 4:d3b60bd43811 212 nop
DavidEGrayson 4:d3b60bd43811 213 nop
DavidEGrayson 0:06475317f283 214 nop
DavidEGrayson 0:06475317f283 215 nop
DavidEGrayson 0:06475317f283 216 nop
DavidEGrayson 0:06475317f283 217 nop
DavidEGrayson 0:06475317f283 218 nop
DavidEGrayson 0:06475317f283 219 nop
DavidEGrayson 0:06475317f283 220 nop
DavidEGrayson 0:06475317f283 221 nop
DavidEGrayson 0:06475317f283 222 nop
DavidEGrayson 0:06475317f283 223 nop
DavidEGrayson 0:06475317f283 224
DavidEGrayson 0:06475317f283 225 nop
DavidEGrayson 0:06475317f283 226 nop
DavidEGrayson 0:06475317f283 227 nop
DavidEGrayson 0:06475317f283 228 nop
DavidEGrayson 0:06475317f283 229 nop
DavidEGrayson 0:06475317f283 230 nop
DavidEGrayson 0:06475317f283 231 nop
DavidEGrayson 0:06475317f283 232 nop
DavidEGrayson 0:06475317f283 233 nop
DavidEGrayson 0:06475317f283 234 nop
DavidEGrayson 4:d3b60bd43811 235 nop
DavidEGrayson 4:d3b60bd43811 236 nop
DavidEGrayson 4:d3b60bd43811 237 nop
DavidEGrayson 4:d3b60bd43811 238 nop
DavidEGrayson 4:d3b60bd43811 239 nop
DavidEGrayson 4:d3b60bd43811 240 nop
DavidEGrayson 0:06475317f283 241
DavidEGrayson 0:06475317f283 242 nop
DavidEGrayson 0:06475317f283 243 nop
DavidEGrayson 0:06475317f283 244 nop
DavidEGrayson 0:06475317f283 245 nop
DavidEGrayson 0:06475317f283 246 nop
DavidEGrayson 0:06475317f283 247 nop
DavidEGrayson 0:06475317f283 248 nop
DavidEGrayson 0:06475317f283 249 nop
DavidEGrayson 0:06475317f283 250 nop
DavidEGrayson 0:06475317f283 251 nop
DavidEGrayson 4:d3b60bd43811 252 nop
DavidEGrayson 4:d3b60bd43811 253 nop
DavidEGrayson 4:d3b60bd43811 254 nop
DavidEGrayson 4:d3b60bd43811 255 nop
DavidEGrayson 4:d3b60bd43811 256 nop
DavidEGrayson 4:d3b60bd43811 257 nop
DavidEGrayson 0:06475317f283 258
DavidEGrayson 0:06475317f283 259 nop
DavidEGrayson 0:06475317f283 260 nop
DavidEGrayson 0:06475317f283 261 nop
DavidEGrayson 0:06475317f283 262 nop
DavidEGrayson 0:06475317f283 263 nop
DavidEGrayson 0:06475317f283 264 nop
DavidEGrayson 0:06475317f283 265 nop
DavidEGrayson 0:06475317f283 266 nop
DavidEGrayson 0:06475317f283 267 nop
DavidEGrayson 0:06475317f283 268 nop
DavidEGrayson 0:06475317f283 269 nop
DavidEGrayson 0:06475317f283 270 nop
DavidEGrayson 0:06475317f283 271 nop
DavidEGrayson 0:06475317f283 272 nop
DavidEGrayson 0:06475317f283 273 nop
DavidEGrayson 0:06475317f283 274 nop
DavidEGrayson 0:06475317f283 275
DavidEGrayson 0:06475317f283 276 nop
DavidEGrayson 0:06475317f283 277 nop
DavidEGrayson 0:06475317f283 278 nop
DavidEGrayson 0:06475317f283 279 nop
DavidEGrayson 0:06475317f283 280 nop
DavidEGrayson 0:06475317f283 281 nop
DavidEGrayson 0:06475317f283 282 nop
DavidEGrayson 0:06475317f283 283 nop
DavidEGrayson 0:06475317f283 284 nop
DavidEGrayson 0:06475317f283 285 nop
DavidEGrayson 4:d3b60bd43811 286 nop
DavidEGrayson 4:d3b60bd43811 287 nop
DavidEGrayson 4:d3b60bd43811 288 nop
DavidEGrayson 4:d3b60bd43811 289 nop
DavidEGrayson 4:d3b60bd43811 290 nop
DavidEGrayson 4:d3b60bd43811 291 nop
DavidEGrayson 4:d3b60bd43811 292
DavidEGrayson 0:06475317f283 293 nop
DavidEGrayson 0:06475317f283 294 nop
DavidEGrayson 0:06475317f283 295 nop
DavidEGrayson 0:06475317f283 296 nop
DavidEGrayson 0:06475317f283 297 nop
DavidEGrayson 0:06475317f283 298 nop
DavidEGrayson 4:d3b60bd43811 299 nop
DavidEGrayson 4:d3b60bd43811 300 nop
DavidEGrayson 4:d3b60bd43811 301 nop
DavidEGrayson 4:d3b60bd43811 302 nop
DavidEGrayson 4:d3b60bd43811 303 nop
DavidEGrayson 4:d3b60bd43811 304 nop
DavidEGrayson 4:d3b60bd43811 305 nop
DavidEGrayson 4:d3b60bd43811 306 nop
DavidEGrayson 4:d3b60bd43811 307 nop
DavidEGrayson 4:d3b60bd43811 308 nop
DavidEGrayson 4:d3b60bd43811 309 bx lr ; return
DavidEGrayson 0:06475317f283 310
DavidEGrayson 0:06475317f283 311 END