TG-LPC11U35-501に対応
こちらのページのプログラムを、TG-LPC11U35-501に対応させました。
https://developer.mbed.org/users/tkasa/code/LEDTape_WS2812/wiki/Homepage
動作に疑問があるため、教えを請うための公開です。
疑問が解消され次第公開を終了します。
(2016/04/13 追記)
おかしな動作解消されました。
プログラム LEDstrip_WS2812.cpp を修正しました。
修正点はコメントを加えてあります。
しばらくしたら、削除する予定です。
Diff: main.cpp
- Revision:
- 0:4b0686730a99
- Child:
- 1:4aff1ebb42c1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Apr 11 06:52:42 2016 +0000 @@ -0,0 +1,84 @@ +/* + * WS2812 tape led IC + */ +#include "mbed.h" +#include "LEDStrip.h" + + +#if defined(TARGET_LPC1768) + Serial pc(USBTX, USBRX); +#elif defined(TARGET_LPC11U35_501) + Serial pc(p9, p10); +#endif +DigitalOut led1(LED1), led2(LED2); // , led3(LED3), led4(LED4); + +extern "C" +void HardFault_Handler() { + printf("Hard Fault!\r\n"); + exit(-1); +} + +int main() { + int j, k = 0; + int vall[4]; + + pc.baud(115200); + tapeInit(0, 16); + led1 = 1; + + pc.printf("led\r\n"); + +/* + for (;;) { + for (long int i = 0; i < 128; i++) { + vall[0] = (i << 8)|(127-i); + vall[1] = (i << 16)|((127-i)<<8); + vall[2] = ((127-i)<<16)|i; + vall[3] = i; + for(int j=0;j<4;j++){ +// j = 0; + tapeSet(j, vall[j]); + tapeSend(); + wait(0.1); + pc.printf("i= %d\r\n",i); + } + wait_ms(2); + } + } +*/ + + for (;;) { + for (long int i = 0; i < 256; i++) { + int val = (i << 8)|(255-i); + for(int j=0;j<16;j++){ + tapeSet(j, val); + } + tapeSend(); + wait_ms(2); + } + for (long int i = 0; i < 256; i++) { + int val = (i << 16)|((255-i)<<8); + for(int j=0;j<16;j++){ + tapeSet(j, val); + } + tapeSend(); + wait_ms(2); + } + for (long int i = 0; i < 256; i++) { + int val = ((255-i)<<16)|i; + for(int j=0;j<16;j++){ + tapeSet(j, val); + } + tapeSend(); + wait_ms(2); + + } + pc.printf("test3\r\n"); +// while (1); + for (long int i = 0; i < 160; i ++) { + tapeSet(i, 0); + } + tapeSend(); + } + +}