#include "WS2812.h"
|
#define LED_GPIO (0x0040)
|
void w28delay(uint32_t nTimer)
|
{
|
uint32_t i=0;
|
for(i=0;i<nTimer;i++){
|
// __NOP();
|
|
}
|
}
|
void RGB_Set_Up()
|
{
|
GPIOB->BSRR = LED_GPIO;
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
// w28delay(0);
|
GPIOB->BRR = LED_GPIO;
|
// __NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
// GPIOB->BSRR = LED_GPIO;
|
// w28delay(0);
|
}
|
void RGB_Set_Down()
|
{
|
GPIOB->BSRR = LED_GPIO;
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
// __NOP();
|
//w28delay(0);
|
GPIOB->BRR = LED_GPIO;
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
__NOP();
|
//w28delay(0);
|
|
}
|
|
//void RGB_Set(uint32_t G8R8B8)
|
//{
|
// int i;
|
// uint8_t byte=0;
|
// for(i=23;i>=0;i--)
|
// {
|
// byte = ((G8R8B8>>i)&0x1);
|
// if(byte == 1)
|
// {
|
// RGB_Set_Up();
|
// }else{
|
// RGB_Set_Down();
|
// }
|
//
|
// }
|
//}
|
|
void RGB_Set(uint32_t G8R8B8)
|
{
|
if(G8R8B8==RED)
|
{RGB_Set_RED();}
|
if(G8R8B8==GREEN)
|
{RGB_Set_GREEN();}
|
if(G8R8B8==BLUE)
|
{RGB_Set_BLUE();}
|
if(G8R8B8==WHITE)
|
{RGB_Set_WHITE();}
|
if(G8R8B8==LEDOFF)
|
{RGB_Set_LEDOFF();}
|
}
|
|
void RGB_Rst(void)
|
{
|
GPIOB->BRR=LED_GPIO;
|
w28delay(500);
|
// GPIOB->BSRR = 0X0080;
|
}
|
//uint32_t led1,led2,led3,led4,led5;
|
void Set4LEDColor(uint32_t firstled,uint32_t secondled,uint32_t thirdled,uint32_t fourthled)
|
{
|
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET);
|
//__disable_irq();
|
RGB_Rst();
|
RGB_Set(fourthled);
|
RGB_Set(thirdled);
|
RGB_Set(secondled);
|
RGB_Set(firstled);
|
|
// RGB_Set(firstled);
|
// RGB_Set(secondled);
|
// RGB_Set(thirdled);
|
// RGB_Set(fourthled);
|
|
|
//__enable_irq();
|
RGB_Rst();
|
|
}
|
|
|
void RGB_Set_RED(void)
|
{
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
}
|
|
void RGB_Set_GREEN(void)
|
{
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
}
|
|
void RGB_Set_BLUE(void)
|
{
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
}
|
|
void RGB_Set_WHITE()
|
{
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
RGB_Set_Up();
|
}
|
|
void RGB_Set_LEDOFF(void)
|
{
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
RGB_Set_Down();
|
}
|
void Set4LEDColor_Off(void)
|
{
|
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);
|
}
|