Forked PololuLedStrip and modified it to work with the KL25Z. Renamed it to Adafruit_NeoPixel.

Dependents:   idd_hw3 idd_fa15_hw3_lauren_bill_tomas idd_fa15_hw3_lauren_bill_tomas Raiden ... more

Fork of PololuLedStrip by David Grayson

Committer:
DavidEGrayson
Date:
Fri Mar 01 00:05:26 2013 +0000
Revision:
5:690fdfb595de
Parent:
4:d3b60bd43811
Child:
6:9d0530b7dae2
It looks like the code is transmitting the right number of bits now.

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 5:690fdfb595de 5 ; Register usage:
DavidEGrayson 5:690fdfb595de 6 ; These are the first 4 arguments to the method:
DavidEGrayson 5:690fdfb595de 7 ; R0: pointer to the color to send
DavidEGrayson 5:690fdfb595de 8 ; R1: pointer to the register for setting the pin
DavidEGrayson 5:690fdfb595de 9 ; R2: pointer to the register for clearing the pin
DavidEGrayson 5:690fdfb595de 10 ; R3: pin mask
DavidEGrayson 5:690fdfb595de 11 ; Additionally, we use these registers:
DavidEGrayson 5:690fdfb595de 12 ; R4: temporary register
DavidEGrayson 5:690fdfb595de 13 ; R7: the number of bits we still need to send
DavidEGrayson 5:690fdfb595de 14 ; R12: shift register that holds the 24-bit color
DavidEGrayson 5:690fdfb595de 15 ; R13: Link Register, holds return addresses.
DavidEGrayson 5:690fdfb595de 16
DavidEGrayson 5:690fdfb595de 17
DavidEGrayson 5:690fdfb595de 18 push {r4, r12, r7, lr}
DavidEGrayson 0:06475317f283 19
DavidEGrayson 0:06475317f283 20 ldr r12, [r0] ; Read the next color.
DavidEGrayson 0:06475317f283 21 rbit r12, r12 ; Reverse the order of the bits.
DavidEGrayson 0:06475317f283 22 rev r12, r12 ; Reverse the order of the bytes.
DavidEGrayson 0:06475317f283 23 mov r7, #24 ; Initialize the loop counter register.
DavidEGrayson 0:06475317f283 24
DavidEGrayson 0:06475317f283 25 send_led_strip_bit
DavidEGrayson 0:06475317f283 26 str r3, [r1] ; Drive the line high.
DavidEGrayson 0:06475317f283 27 rrxs r12, r12 ; Rotate right through carry.
DavidEGrayson 0:06475317f283 28
DavidEGrayson 5:690fdfb595de 29 ldr r4, =delay_region_end
DavidEGrayson 5:690fdfb595de 30 sub r4, r4, #59*2
DavidEGrayson 5:690fdfb595de 31 blx r4
DavidEGrayson 0:06475317f283 32
DavidEGrayson 0:06475317f283 33 it cc ; If the bit to send it 0...
DavidEGrayson 0:06475317f283 34 strcc r3, [r2] ; Drive the line low.
DavidEGrayson 0:06475317f283 35
DavidEGrayson 5:690fdfb595de 36 ldr r4, =delay_region_end
DavidEGrayson 5:690fdfb595de 37 sub r4, r4, #59*2
DavidEGrayson 5:690fdfb595de 38 blx r4
DavidEGrayson 0:06475317f283 39
DavidEGrayson 0:06475317f283 40 it cs ; If the bit to send is 1...
DavidEGrayson 0:06475317f283 41 strcs r3, [r2] ; Drive the line low.
DavidEGrayson 0:06475317f283 42
DavidEGrayson 4:d3b60bd43811 43 ldr r4, =delay_region
DavidEGrayson 5:690fdfb595de 44 add r4, r4, #68
DavidEGrayson 4:d3b60bd43811 45 blx r4
DavidEGrayson 4:d3b60bd43811 46
DavidEGrayson 5:690fdfb595de 47 subs r7, r7, #1 ; Decrement the loop counter.
DavidEGrayson 5:690fdfb595de 48 bne send_led_strip_bit ; Send another bit if we have not reached zero.
DavidEGrayson 4:d3b60bd43811 49
DavidEGrayson 4:d3b60bd43811 50 led_strip_asm_end
DavidEGrayson 5:690fdfb595de 51 pop {r4, r12, r7, lr}
DavidEGrayson 4:d3b60bd43811 52 bx lr
DavidEGrayson 4:d3b60bd43811 53
DavidEGrayson 4:d3b60bd43811 54
DavidEGrayson 4:d3b60bd43811 55 delay_region
DavidEGrayson 5:690fdfb595de 56 ; The following is 128 nops.
DavidEGrayson 0:06475317f283 57 nop
DavidEGrayson 0:06475317f283 58 nop
DavidEGrayson 0:06475317f283 59 nop
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 4:d3b60bd43811 70 nop
DavidEGrayson 4:d3b60bd43811 71 nop
DavidEGrayson 4:d3b60bd43811 72 nop
DavidEGrayson 4:d3b60bd43811 73
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 nop
DavidEGrayson 0:06475317f283 82 nop
DavidEGrayson 0:06475317f283 83 nop
DavidEGrayson 0:06475317f283 84 nop
DavidEGrayson 0:06475317f283 85 nop
DavidEGrayson 0:06475317f283 86 nop
DavidEGrayson 0:06475317f283 87 nop
DavidEGrayson 0:06475317f283 88 nop
DavidEGrayson 0:06475317f283 89 nop
DavidEGrayson 4:d3b60bd43811 90
DavidEGrayson 0:06475317f283 91 nop
DavidEGrayson 0:06475317f283 92 nop
DavidEGrayson 0:06475317f283 93 nop
DavidEGrayson 0:06475317f283 94 nop
DavidEGrayson 4:d3b60bd43811 95 nop
DavidEGrayson 4:d3b60bd43811 96 nop
DavidEGrayson 0:06475317f283 97 nop
DavidEGrayson 0:06475317f283 98 nop
DavidEGrayson 0:06475317f283 99 nop
DavidEGrayson 0:06475317f283 100 nop
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
DavidEGrayson 0:06475317f283 108 nop
DavidEGrayson 0:06475317f283 109 nop
DavidEGrayson 0:06475317f283 110 nop
DavidEGrayson 0:06475317f283 111 nop
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 4:d3b60bd43811 118 nop
DavidEGrayson 4:d3b60bd43811 119 nop
DavidEGrayson 4:d3b60bd43811 120 nop
DavidEGrayson 4:d3b60bd43811 121 nop
DavidEGrayson 4:d3b60bd43811 122 nop
DavidEGrayson 4:d3b60bd43811 123 nop
DavidEGrayson 0:06475317f283 124
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 nop
DavidEGrayson 0:06475317f283 134 nop
DavidEGrayson 4:d3b60bd43811 135 nop
DavidEGrayson 4:d3b60bd43811 136 nop
DavidEGrayson 4:d3b60bd43811 137 nop
DavidEGrayson 4:d3b60bd43811 138 nop
DavidEGrayson 4:d3b60bd43811 139 nop
DavidEGrayson 4:d3b60bd43811 140 nop
DavidEGrayson 0:06475317f283 141
DavidEGrayson 0:06475317f283 142 nop
DavidEGrayson 0:06475317f283 143 nop
DavidEGrayson 0:06475317f283 144 nop
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 nop
DavidEGrayson 0:06475317f283 155 nop
DavidEGrayson 0:06475317f283 156 nop
DavidEGrayson 0:06475317f283 157 nop
DavidEGrayson 0:06475317f283 158
DavidEGrayson 0:06475317f283 159 nop
DavidEGrayson 0:06475317f283 160 nop
DavidEGrayson 0:06475317f283 161 nop
DavidEGrayson 0:06475317f283 162 nop
DavidEGrayson 0:06475317f283 163 nop
DavidEGrayson 0:06475317f283 164 nop
DavidEGrayson 0:06475317f283 165 nop
DavidEGrayson 0:06475317f283 166 nop
DavidEGrayson 0:06475317f283 167 nop
DavidEGrayson 0:06475317f283 168 nop
DavidEGrayson 4:d3b60bd43811 169 nop
DavidEGrayson 4:d3b60bd43811 170 nop
DavidEGrayson 4:d3b60bd43811 171 nop
DavidEGrayson 4:d3b60bd43811 172 nop
DavidEGrayson 4:d3b60bd43811 173 nop
DavidEGrayson 4:d3b60bd43811 174 nop
DavidEGrayson 4:d3b60bd43811 175
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 4:d3b60bd43811 182 nop
DavidEGrayson 4:d3b60bd43811 183 nop
DavidEGrayson 4:d3b60bd43811 184 nop
DavidEGrayson 4:d3b60bd43811 185 nop
DavidEGrayson 4:d3b60bd43811 186 nop
DavidEGrayson 4:d3b60bd43811 187 nop
DavidEGrayson 4:d3b60bd43811 188 nop
DavidEGrayson 4:d3b60bd43811 189 nop
DavidEGrayson 4:d3b60bd43811 190 nop
DavidEGrayson 4:d3b60bd43811 191 nop
DavidEGrayson 5:690fdfb595de 192 delay_region_end
DavidEGrayson 4:d3b60bd43811 193 bx lr ; return
DavidEGrayson 0:06475317f283 194
DavidEGrayson 0:06475317f283 195 END