Library and demo using the WS2812-based Neopixel strip connected to an LPC114
Fork of LEDTape_WS2812 by
Details here: http://mbed.org/users/rhodes42/notebook/tiny-neopixel-controller-with-lpc1114/
main.cpp@1:71b32479b674, 2014-03-24 (annotated)
- Committer:
- rhodes42
- Date:
- Mon Mar 24 08:06:29 2014 +0000
- Revision:
- 1:71b32479b674
- Parent:
- 0:d067ddfe3df9
- Child:
- 2:61abc599f31f
working non-inverted WS2812 driver;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:d067ddfe3df9 | 1 | /* |
okini3939 | 0:d067ddfe3df9 | 2 | * WS2812 tape led IC |
okini3939 | 0:d067ddfe3df9 | 3 | */ |
okini3939 | 0:d067ddfe3df9 | 4 | #include "mbed.h" |
okini3939 | 0:d067ddfe3df9 | 5 | #include "LEDStrip.h" |
rhodes42 | 1:71b32479b674 | 6 | #include <stdint.h> |
okini3939 | 0:d067ddfe3df9 | 7 | |
rhodes42 | 1:71b32479b674 | 8 | //Serial pc(USBTX, USBRX); |
okini3939 | 0:d067ddfe3df9 | 9 | DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); |
okini3939 | 0:d067ddfe3df9 | 10 | |
okini3939 | 0:d067ddfe3df9 | 11 | extern "C" |
okini3939 | 0:d067ddfe3df9 | 12 | void HardFault_Handler() { |
okini3939 | 0:d067ddfe3df9 | 13 | printf("Hard Fault!\r\n"); |
okini3939 | 0:d067ddfe3df9 | 14 | exit(-1); |
okini3939 | 0:d067ddfe3df9 | 15 | } |
okini3939 | 0:d067ddfe3df9 | 16 | |
okini3939 | 0:d067ddfe3df9 | 17 | int main() { |
rhodes42 | 1:71b32479b674 | 18 | uint32_t i; |
rhodes42 | 1:71b32479b674 | 19 | int j, k = 0; |
rhodes42 | 1:71b32479b674 | 20 | |
rhodes42 | 1:71b32479b674 | 21 | int numLEDs = 59; |
rhodes42 | 1:71b32479b674 | 22 | // pc.baud(115200); |
rhodes42 | 1:71b32479b674 | 23 | tapeInit(0, numLEDs); |
okini3939 | 0:d067ddfe3df9 | 24 | led1 = 1; |
okini3939 | 0:d067ddfe3df9 | 25 | |
rhodes42 | 1:71b32479b674 | 26 | // pc.printf("led\r\n"); |
rhodes42 | 1:71b32479b674 | 27 | int color_on = (0xff << 16) | (0xff << 8) | (0xff); |
okini3939 | 0:d067ddfe3df9 | 28 | |
okini3939 | 0:d067ddfe3df9 | 29 | for (;;) { |
rhodes42 | 1:71b32479b674 | 30 | // for (i = 0; i < 256; i ++) { |
rhodes42 | 1:71b32479b674 | 31 | led1 = 1; |
rhodes42 | 1:71b32479b674 | 32 | |
rhodes42 | 1:71b32479b674 | 33 | /* |
rhodes42 | 1:71b32479b674 | 34 | for(k = 0; k < 59; k += 2) |
rhodes42 | 1:71b32479b674 | 35 | { |
rhodes42 | 1:71b32479b674 | 36 | tapeSet(k, color_on); |
rhodes42 | 1:71b32479b674 | 37 | } |
rhodes42 | 1:71b32479b674 | 38 | for(k = 1; k < 59; k += 2) |
rhodes42 | 1:71b32479b674 | 39 | { |
rhodes42 | 1:71b32479b674 | 40 | tapeSet(k, 0); |
rhodes42 | 1:71b32479b674 | 41 | } |
okini3939 | 0:d067ddfe3df9 | 42 | tapeSend(); |
okini3939 | 0:d067ddfe3df9 | 43 | led2 = 0; |
rhodes42 | 1:71b32479b674 | 44 | wait_ms(1000); |
rhodes42 | 1:71b32479b674 | 45 | |
rhodes42 | 1:71b32479b674 | 46 | for(k = 0; k < 59; k += 2) |
rhodes42 | 1:71b32479b674 | 47 | { |
rhodes42 | 1:71b32479b674 | 48 | tapeSet(k, 0); |
rhodes42 | 1:71b32479b674 | 49 | } |
rhodes42 | 1:71b32479b674 | 50 | for(k = 1; k < 59; k += 2) |
rhodes42 | 1:71b32479b674 | 51 | { |
rhodes42 | 1:71b32479b674 | 52 | tapeSet(k, color_on); |
rhodes42 | 1:71b32479b674 | 53 | } |
rhodes42 | 1:71b32479b674 | 54 | tapeSend(); |
rhodes42 | 1:71b32479b674 | 55 | wait_ms(1000); |
rhodes42 | 1:71b32479b674 | 56 | */ |
rhodes42 | 1:71b32479b674 | 57 | |
rhodes42 | 1:71b32479b674 | 58 | for(i = 0; i < 255; i++); |
rhodes42 | 1:71b32479b674 | 59 | { |
rhodes42 | 1:71b32479b674 | 60 | color_on = (i << 16) | (i << 8) | (i); |
rhodes42 | 1:71b32479b674 | 61 | //led2 = 1; |
rhodes42 | 1:71b32479b674 | 62 | /* |
rhodes42 | 1:71b32479b674 | 63 | for(j = 0; j < numLEDs; j++); |
rhodes42 | 1:71b32479b674 | 64 | { |
rhodes42 | 1:71b32479b674 | 65 | tapeSet(j, color_on); |
rhodes42 | 1:71b32479b674 | 66 | }*/ |
rhodes42 | 1:71b32479b674 | 67 | //tapeSet(k, 0); |
rhodes42 | 1:71b32479b674 | 68 | tapeSet(0,0); |
rhodes42 | 1:71b32479b674 | 69 | tapeSet(1,color_on); |
rhodes42 | 1:71b32479b674 | 70 | tapeSet(2,0); |
rhodes42 | 1:71b32479b674 | 71 | tapeSet(3,color_on); |
rhodes42 | 1:71b32479b674 | 72 | tapeSet(4,0); |
rhodes42 | 1:71b32479b674 | 73 | tapeSet(5,color_on); |
rhodes42 | 1:71b32479b674 | 74 | tapeSet(6,0); |
rhodes42 | 1:71b32479b674 | 75 | tapeSet(7,color_on); |
rhodes42 | 1:71b32479b674 | 76 | tapeSet(8,0); |
rhodes42 | 1:71b32479b674 | 77 | tapeSet(9,color_on); |
rhodes42 | 1:71b32479b674 | 78 | tapeSet(10,0); |
rhodes42 | 1:71b32479b674 | 79 | tapeSet(11,color_on); |
rhodes42 | 1:71b32479b674 | 80 | tapeSet(12,0); |
rhodes42 | 1:71b32479b674 | 81 | tapeSet(13,color_on); |
rhodes42 | 1:71b32479b674 | 82 | tapeSet(14,0); |
rhodes42 | 1:71b32479b674 | 83 | tapeSet(15,color_on); |
rhodes42 | 1:71b32479b674 | 84 | tapeSet(16,0); |
rhodes42 | 1:71b32479b674 | 85 | tapeSet(17,color_on); |
rhodes42 | 1:71b32479b674 | 86 | tapeSet(18,0); |
rhodes42 | 1:71b32479b674 | 87 | tapeSet(19,color_on); |
rhodes42 | 1:71b32479b674 | 88 | tapeSet(20,0); |
rhodes42 | 1:71b32479b674 | 89 | tapeSet(21,color_on); |
rhodes42 | 1:71b32479b674 | 90 | tapeSet(22,0); |
rhodes42 | 1:71b32479b674 | 91 | tapeSet(23,color_on); |
rhodes42 | 1:71b32479b674 | 92 | tapeSet(24,0); |
rhodes42 | 1:71b32479b674 | 93 | tapeSet(25,color_on); |
rhodes42 | 1:71b32479b674 | 94 | tapeSet(26,0); |
rhodes42 | 1:71b32479b674 | 95 | tapeSet(27,color_on); |
rhodes42 | 1:71b32479b674 | 96 | tapeSet(28,0); |
rhodes42 | 1:71b32479b674 | 97 | tapeSet(29,color_on); |
rhodes42 | 1:71b32479b674 | 98 | tapeSet(30,0); |
rhodes42 | 1:71b32479b674 | 99 | tapeSet(31,color_on); |
rhodes42 | 1:71b32479b674 | 100 | tapeSet(32,0); |
rhodes42 | 1:71b32479b674 | 101 | tapeSet(33,color_on); |
rhodes42 | 1:71b32479b674 | 102 | tapeSet(34,0); |
rhodes42 | 1:71b32479b674 | 103 | tapeSet(35,color_on); |
rhodes42 | 1:71b32479b674 | 104 | tapeSet(36,0); |
rhodes42 | 1:71b32479b674 | 105 | tapeSet(37,color_on); |
rhodes42 | 1:71b32479b674 | 106 | tapeSet(38,0); |
rhodes42 | 1:71b32479b674 | 107 | tapeSet(39,color_on); |
rhodes42 | 1:71b32479b674 | 108 | tapeSet(40,0); |
rhodes42 | 1:71b32479b674 | 109 | tapeSet(41,color_on); |
rhodes42 | 1:71b32479b674 | 110 | tapeSet(42,0); |
rhodes42 | 1:71b32479b674 | 111 | tapeSet(43,color_on); |
rhodes42 | 1:71b32479b674 | 112 | tapeSet(44,0); |
rhodes42 | 1:71b32479b674 | 113 | tapeSet(45,color_on); |
rhodes42 | 1:71b32479b674 | 114 | tapeSet(46,0); |
rhodes42 | 1:71b32479b674 | 115 | tapeSet(47,color_on); |
rhodes42 | 1:71b32479b674 | 116 | tapeSet(48,0); |
rhodes42 | 1:71b32479b674 | 117 | tapeSet(49,color_on); |
rhodes42 | 1:71b32479b674 | 118 | tapeSet(50,0); |
rhodes42 | 1:71b32479b674 | 119 | tapeSet(51,color_on); |
rhodes42 | 1:71b32479b674 | 120 | tapeSet(52,0); |
rhodes42 | 1:71b32479b674 | 121 | tapeSet(53,color_on); |
rhodes42 | 1:71b32479b674 | 122 | tapeSet(54,0); |
rhodes42 | 1:71b32479b674 | 123 | tapeSet(55,color_on); |
rhodes42 | 1:71b32479b674 | 124 | tapeSet(56,0); |
rhodes42 | 1:71b32479b674 | 125 | tapeSet(57,color_on); |
rhodes42 | 1:71b32479b674 | 126 | tapeSet(58,0); |
rhodes42 | 1:71b32479b674 | 127 | |
rhodes42 | 1:71b32479b674 | 128 | led1 = 0; |
rhodes42 | 1:71b32479b674 | 129 | tapeSend(); |
rhodes42 | 1:71b32479b674 | 130 | wait_ms(50); |
rhodes42 | 1:71b32479b674 | 131 | |
rhodes42 | 1:71b32479b674 | 132 | /* |
rhodes42 | 1:71b32479b674 | 133 | for(j = 0; j < numLEDs; j++); |
rhodes42 | 1:71b32479b674 | 134 | { |
rhodes42 | 1:71b32479b674 | 135 | tapeSet(j, 0); |
rhodes42 | 1:71b32479b674 | 136 | }*/ |
rhodes42 | 1:71b32479b674 | 137 | //tapeSet(k, color_on); |
rhodes42 | 1:71b32479b674 | 138 | |
rhodes42 | 1:71b32479b674 | 139 | tapeSet(0,color_on); |
rhodes42 | 1:71b32479b674 | 140 | tapeSet(1,0); |
rhodes42 | 1:71b32479b674 | 141 | tapeSet(2,color_on); |
rhodes42 | 1:71b32479b674 | 142 | tapeSet(3,0); |
rhodes42 | 1:71b32479b674 | 143 | tapeSet(4,color_on); |
rhodes42 | 1:71b32479b674 | 144 | tapeSet(5,0); |
rhodes42 | 1:71b32479b674 | 145 | tapeSet(6,color_on); |
rhodes42 | 1:71b32479b674 | 146 | tapeSet(7,0); |
rhodes42 | 1:71b32479b674 | 147 | tapeSet(8,color_on); |
rhodes42 | 1:71b32479b674 | 148 | tapeSet(9,0); |
rhodes42 | 1:71b32479b674 | 149 | tapeSet(10,color_on); |
rhodes42 | 1:71b32479b674 | 150 | tapeSet(11,0); |
rhodes42 | 1:71b32479b674 | 151 | tapeSet(12,color_on); |
rhodes42 | 1:71b32479b674 | 152 | tapeSet(13,0); |
rhodes42 | 1:71b32479b674 | 153 | tapeSet(14,color_on); |
rhodes42 | 1:71b32479b674 | 154 | tapeSet(15,0); |
rhodes42 | 1:71b32479b674 | 155 | tapeSet(16,color_on); |
rhodes42 | 1:71b32479b674 | 156 | tapeSet(17,0); |
rhodes42 | 1:71b32479b674 | 157 | tapeSet(18,color_on); |
rhodes42 | 1:71b32479b674 | 158 | tapeSet(19,0); |
rhodes42 | 1:71b32479b674 | 159 | tapeSet(20,color_on); |
rhodes42 | 1:71b32479b674 | 160 | tapeSet(21,0); |
rhodes42 | 1:71b32479b674 | 161 | tapeSet(22,color_on); |
rhodes42 | 1:71b32479b674 | 162 | tapeSet(23,0); |
rhodes42 | 1:71b32479b674 | 163 | tapeSet(24,color_on); |
rhodes42 | 1:71b32479b674 | 164 | tapeSet(25,0); |
rhodes42 | 1:71b32479b674 | 165 | tapeSet(26,color_on); |
rhodes42 | 1:71b32479b674 | 166 | tapeSet(27,0); |
rhodes42 | 1:71b32479b674 | 167 | tapeSet(28,color_on); |
rhodes42 | 1:71b32479b674 | 168 | tapeSet(29,0); |
rhodes42 | 1:71b32479b674 | 169 | tapeSet(30,color_on); |
rhodes42 | 1:71b32479b674 | 170 | tapeSet(31,0); |
rhodes42 | 1:71b32479b674 | 171 | tapeSet(32,color_on); |
rhodes42 | 1:71b32479b674 | 172 | tapeSet(33,0); |
rhodes42 | 1:71b32479b674 | 173 | tapeSet(34,color_on); |
rhodes42 | 1:71b32479b674 | 174 | tapeSet(35,0); |
rhodes42 | 1:71b32479b674 | 175 | tapeSet(36,color_on); |
rhodes42 | 1:71b32479b674 | 176 | tapeSet(37,0); |
rhodes42 | 1:71b32479b674 | 177 | tapeSet(38,color_on); |
rhodes42 | 1:71b32479b674 | 178 | tapeSet(39,0); |
rhodes42 | 1:71b32479b674 | 179 | tapeSet(40,color_on); |
rhodes42 | 1:71b32479b674 | 180 | tapeSet(41,0); |
rhodes42 | 1:71b32479b674 | 181 | tapeSet(42,color_on); |
rhodes42 | 1:71b32479b674 | 182 | tapeSet(43,0); |
rhodes42 | 1:71b32479b674 | 183 | tapeSet(44,color_on); |
rhodes42 | 1:71b32479b674 | 184 | tapeSet(45,0); |
rhodes42 | 1:71b32479b674 | 185 | tapeSet(46,color_on); |
rhodes42 | 1:71b32479b674 | 186 | tapeSet(47,0); |
rhodes42 | 1:71b32479b674 | 187 | tapeSet(48,color_on); |
rhodes42 | 1:71b32479b674 | 188 | tapeSet(49,0); |
rhodes42 | 1:71b32479b674 | 189 | tapeSet(50,color_on); |
rhodes42 | 1:71b32479b674 | 190 | tapeSet(51,0); |
rhodes42 | 1:71b32479b674 | 191 | tapeSet(52,color_on); |
rhodes42 | 1:71b32479b674 | 192 | tapeSet(53,0); |
rhodes42 | 1:71b32479b674 | 193 | tapeSet(54,color_on); |
rhodes42 | 1:71b32479b674 | 194 | tapeSet(55,0); |
rhodes42 | 1:71b32479b674 | 195 | tapeSet(56,color_on); |
rhodes42 | 1:71b32479b674 | 196 | tapeSet(57,0); |
rhodes42 | 1:71b32479b674 | 197 | tapeSet(58,color_on); |
rhodes42 | 1:71b32479b674 | 198 | led1 = 1; |
rhodes42 | 1:71b32479b674 | 199 | tapeSend(); |
rhodes42 | 1:71b32479b674 | 200 | wait_ms(50); |
rhodes42 | 1:71b32479b674 | 201 | } |
rhodes42 | 1:71b32479b674 | 202 | // } |
okini3939 | 0:d067ddfe3df9 | 203 | } |
okini3939 | 0:d067ddfe3df9 | 204 | } |