Пример #1
0
int LinxChipkit::WS2812Refresh()
{
	#ifdef _BOARD_WF32_ | _BOARD_MEGA_
		while(!m_ws2812.updateLEDs(m_WS2812Buffer));

		return L_OK;
	#else
		return L_FUNCTION_NOT_SUPPORTED;
	#endif
}
Пример #2
0
int LinxChipkit::WS2812WriteOnePixel(unsigned short pixelIndex, unsigned char red, unsigned char green, unsigned char blue, unsigned char refresh)
{
	#ifdef _BOARD_WF32_ | _BOARD_MEGA_
		m_WS2812Buffer[pixelIndex].red = red;
		m_WS2812Buffer[pixelIndex].green = green;
		m_WS2812Buffer[pixelIndex].blue = blue;
		
		if(refresh != 0)
		{
			while(!m_ws2812.updateLEDs(m_WS2812Buffer));
		}
		
		return L_OK;
	#else
		return L_FUNCTION_NOT_SUPPORTED;
	#endif
}
Пример #3
0
int LinxChipkit::WS2812WriteNPixels(unsigned short startPixel, unsigned short numPixels, unsigned char* data, unsigned char refresh)
{
	#ifdef _BOARD_WF32_ | _BOARD_MEGA_
		if(startPixel+numPixels <= m_numPixels)
		{
			memcpy(&m_WS2812Buffer[startPixel], data, sizeof(WS2812::GRB)*numPixels);
		}
		else
		{
			memcpy(&m_WS2812Buffer[startPixel], data, sizeof(WS2812::GRB)*m_numPixels-startPixel);
		}
		
		if(refresh != 0)
		{
			while(!m_ws2812.updateLEDs(m_WS2812Buffer));
		}
		
		return L_OK;
	#else
		return L_FUNCTION_NOT_SUPPORTED;
	#endif
}