--- fixed unstable first LED color ISSUE
This commit is contained in:
parent
6dd59ad942
commit
f9820dbfba
|
@ -48,8 +48,8 @@ enum sts_lamp_color {
|
||||||
|
|
||||||
STS_GREEN_DARK=0x10, //0b0001 0000 GREEN DARK
|
STS_GREEN_DARK=0x10, //0b0001 0000 GREEN DARK
|
||||||
STS_RED_DARK=0x20, //0b0010 0000,
|
STS_RED_DARK=0x20, //0b0010 0000,
|
||||||
STS_BLUE_DARK=0x30, //0b0011 0000 BLUE DARK
|
STS_RED_BLUE=0x23, //0b0010 0011 RED BLUE FLASH
|
||||||
STS_RED_BLUE=0x23 //0b0010 0011 RED BLUE FLASH
|
STS_BLUE_DARK=0x30 //0b0011 0000 BLUE DARK
|
||||||
};
|
};
|
||||||
|
|
||||||
enum sts_oo_work_mode {
|
enum sts_oo_work_mode {
|
||||||
|
|
|
@ -102,9 +102,9 @@ void STS_Lamp_Bar_Set_Dark(void)
|
||||||
void STS_WS2812B_Refresh(void)
|
void STS_WS2812B_Refresh(void)
|
||||||
{
|
{
|
||||||
//__disable_irq();
|
//__disable_irq();
|
||||||
HAL_TIM_PWM_Start_DMA(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL, (uint32_t *)&rgb_buf, (WS2812B_DATA_LEN+1));
|
HAL_TIM_PWM_Start_DMA(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL, (uint32_t *)&rgb_buf, (WS2812B_DATA_LEN+24));
|
||||||
//__enable_irq();
|
//__enable_irq();
|
||||||
//HAL_TIM_PWM_Start_IT(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL);
|
HAL_TIM_PWM_Start_IT(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void STS_Lamp_Bar_Init(void)
|
void STS_Lamp_Bar_Init(void)
|
||||||
|
@ -159,8 +159,8 @@ void STS_Lamp_Bar_Set_RGB_Color(uint8_t red, uint8_t green, uint8_t blue )
|
||||||
uint8_t i =0;
|
uint8_t i =0;
|
||||||
//HAL_Delay(1);
|
//HAL_Delay(1);
|
||||||
|
|
||||||
//__disable_irq();
|
__disable_irq();
|
||||||
//UTIL_MEM_set_8((void*)rgb_buf.GRB,0x0,(WS2812B_DATA_LEN));
|
UTIL_MEM_set_8((void*)rgb_buf.GRB,0x0,(WS2812B_DATA_LEN+48));
|
||||||
//__enable_irq();
|
//__enable_irq();
|
||||||
|
|
||||||
for(i = 0; i < STS_LAMP_BAR_LED_NUM; i++)
|
for(i = 0; i < STS_LAMP_BAR_LED_NUM; i++)
|
||||||
|
@ -178,7 +178,7 @@ void STS_Lamp_Bar_Set_RGB_Color(uint8_t red, uint8_t green, uint8_t blue )
|
||||||
//if (sts_service_mask == STS_SERVICE_MASK_L0) {
|
//if (sts_service_mask == STS_SERVICE_MASK_L0) {
|
||||||
STS_WS2812B_Refresh();
|
STS_WS2812B_Refresh();
|
||||||
//}
|
//}
|
||||||
|
__enable_irq();
|
||||||
}
|
}
|
||||||
|
|
||||||
void STS_Lamp_Bar_Refresh(void)
|
void STS_Lamp_Bar_Refresh(void)
|
||||||
|
|
|
@ -605,7 +605,7 @@ void STS_Combined_Status_Processing(void)
|
||||||
{
|
{
|
||||||
sts_lamp_bar_color = sts_status_color;
|
sts_lamp_bar_color = sts_status_color;
|
||||||
|
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level);
|
//STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level);
|
||||||
|
|
||||||
last_lamp_bar_color = sts_lamp_bar_color;
|
last_lamp_bar_color = sts_lamp_bar_color;
|
||||||
}
|
}
|
||||||
|
|
|
@ -612,7 +612,7 @@ void LoRaWAN_Init(void)
|
||||||
|
|
||||||
UTIL_TIMER_Create(&TxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnTxTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&TxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnTxTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnJoinTimerLedEvent, NULL);
|
UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnJoinTimerLedEvent, NULL);
|
||||||
UTIL_TIMER_Create(&STSLampBarColorTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSLampBarColorTimerEvent, NULL);
|
UTIL_TIMER_Create(&STSLampBarColorTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSLampBarColorTimerEvent, NULL);
|
||||||
UTIL_TIMER_Create(&STSDurationCheckTimer, 20*LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSDurationCheckTimerEvent, NULL);
|
UTIL_TIMER_Create(&STSDurationCheckTimer, 20*LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSDurationCheckTimerEvent, NULL);
|
||||||
|
|
||||||
|
@ -1156,6 +1156,7 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context)
|
||||||
//HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); /* STS GREEN */
|
//HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); /* STS GREEN */
|
||||||
//if ((sts_work_mode != STS_WIRED_MODE))
|
//if ((sts_work_mode != STS_WIRED_MODE))
|
||||||
uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x0f;
|
uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x0f;
|
||||||
|
HAL_Delay(10);
|
||||||
if (high4==0)
|
if (high4==0)
|
||||||
{
|
{
|
||||||
if (last_sts_lamp_bar_color != sts_lamp_bar_color)
|
if (last_sts_lamp_bar_color != sts_lamp_bar_color)
|
||||||
|
@ -1170,48 +1171,24 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context)
|
||||||
} else {
|
} else {
|
||||||
if (r_b)
|
if (r_b)
|
||||||
{
|
{
|
||||||
__disable_irq();
|
//__disable_irq();
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(high4, DEFAULT_LUMINANCE_LEVEL);
|
STS_Lamp_Bar_Set_STS_RGB_Color(high4, DEFAULT_LUMINANCE_LEVEL);
|
||||||
__enable_irq();
|
//__enable_irq();
|
||||||
last_sts_lamp_bar_color = high4;
|
last_sts_lamp_bar_color = high4;
|
||||||
//STS_WS2812B_Refresh();
|
//STS_WS2812B_Refresh();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
__disable_irq();
|
//__disable_irq();
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(low4, DEFAULT_LUMINANCE_LEVEL);
|
STS_Lamp_Bar_Set_STS_RGB_Color(low4, DEFAULT_LUMINANCE_LEVEL);
|
||||||
__enable_irq();
|
//__enable_irq();
|
||||||
last_sts_lamp_bar_color = low4;
|
last_sts_lamp_bar_color = low4;
|
||||||
//STS_WS2812B_Refresh();
|
//STS_WS2812B_Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
r_b = !r_b;
|
r_b = !r_b;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
if (sts_lamp_bar_color == STS_RED_BLUE) {
|
|
||||||
if (r_b)
|
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_RED, DEFAULT_LUMINANCE_LEVEL);
|
|
||||||
else
|
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_BLUE, DEFAULT_LUMINANCE_LEVEL);
|
|
||||||
|
|
||||||
r_b = !r_b;
|
UTIL_TIMER_Start(&STSLampBarColorTimer);
|
||||||
} else if (sts_lamp_bar_color == STS_RED_DARK) {
|
|
||||||
if (r_b)
|
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_RED, DEFAULT_LUMINANCE_LEVEL);
|
|
||||||
else
|
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_DARK, DEFAULT_LUMINANCE_LEVEL);
|
|
||||||
|
|
||||||
r_b = !r_b;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (last_sts_lamp_bar_color != sts_lamp_bar_color)
|
|
||||||
{
|
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, DEFAULT_LUMINANCE_LEVEL);
|
|
||||||
last_sts_lamp_bar_color = sts_lamp_bar_color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue