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/
Diff: LEDStrip_WS2812.cpp
- Revision:
- 1:71b32479b674
- Parent:
- 0:d067ddfe3df9
--- a/LEDStrip_WS2812.cpp Mon Jul 08 01:34:51 2013 +0000 +++ b/LEDStrip_WS2812.cpp Mon Mar 24 08:06:29 2014 +0000 @@ -13,11 +13,11 @@ #include "mbed.h" #include "LEDStrip.h" -SPI tape(p11, p12, p13); +SPI tape(dp2, dp1, dp6); -#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) +#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC1114) LPC_SSP_TypeDef *_ssp = LPC_SSP0; -#elif defined(TARGET_LPC11U24) +#elif defined(TARGET_LPC11U24) LPC_SSPx_Type *_ssp = LPC_SSP1; #endif @@ -27,9 +27,9 @@ extern "C" -#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) +#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)|| defined(TARGET_LPC1114) void SSP0_IRQHandler() { -#elif defined(TARGET_LPC11U24) +#elif defined(TARGET_LPC11U24) void SSP1_IRQHandler() { #endif static int addr = 0, bit = 0x800000; @@ -39,10 +39,10 @@ while (_ssp->SR & (1<<1)) { // TNF if (data[addr] & bit) { // 1 - _ssp->DR = 0x01f; + _ssp->DR = 0x3f8; //07f } else { // 0 - _ssp->DR = 0x07f; + _ssp->DR = 0x380; //0077 } bit = bit >> 1; if (bit == 0) { @@ -58,7 +58,7 @@ } else { // blank while (_ssp->SR & (1<<1)) { // TNF - _ssp->DR = 0xfff; + _ssp->DR = 0x000; if (addr < 50) { addr ++; } else { @@ -88,7 +88,7 @@ } else { tape.frequency(8000000); } -#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) +#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC1114) NVIC_SetVector(SSP0_IRQn, (uint32_t)SSP0_IRQHandler); NVIC_SetPriority(SSP0_IRQn, 0); NVIC_EnableIRQ(SSP0_IRQn);