--- 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_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 {
|
||||
|
|
|
@ -102,9 +102,9 @@ void STS_Lamp_Bar_Set_Dark(void)
|
|||
void STS_WS2812B_Refresh(void)
|
||||
{
|
||||
//__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();
|
||||
//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)
|
||||
|
@ -159,8 +159,8 @@ void STS_Lamp_Bar_Set_RGB_Color(uint8_t red, uint8_t green, uint8_t blue )
|
|||
uint8_t i =0;
|
||||
//HAL_Delay(1);
|
||||
|
||||
//__disable_irq();
|
||||
//UTIL_MEM_set_8((void*)rgb_buf.GRB,0x0,(WS2812B_DATA_LEN));
|
||||
__disable_irq();
|
||||
UTIL_MEM_set_8((void*)rgb_buf.GRB,0x0,(WS2812B_DATA_LEN+48));
|
||||
//__enable_irq();
|
||||
|
||||
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) {
|
||||
STS_WS2812B_Refresh();
|
||||
//}
|
||||
|
||||
__enable_irq();
|
||||
}
|
||||
|
||||
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_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;
|
||||
}
|
||||
|
|
|
@ -612,7 +612,7 @@ void LoRaWAN_Init(void)
|
|||
|
||||
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(&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(&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 */
|
||||
//if ((sts_work_mode != STS_WIRED_MODE))
|
||||
uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x0f;
|
||||
HAL_Delay(10);
|
||||
if (high4==0)
|
||||
{
|
||||
if (last_sts_lamp_bar_color != sts_lamp_bar_color)
|
||||
|
@ -1170,48 +1171,24 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context)
|
|||
} else {
|
||||
if (r_b)
|
||||
{
|
||||
__disable_irq();
|
||||
//__disable_irq();
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(high4, DEFAULT_LUMINANCE_LEVEL);
|
||||
__enable_irq();
|
||||
//__enable_irq();
|
||||
last_sts_lamp_bar_color = high4;
|
||||
//STS_WS2812B_Refresh();
|
||||
}
|
||||
else {
|
||||
__disable_irq();
|
||||
//__disable_irq();
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(low4, DEFAULT_LUMINANCE_LEVEL);
|
||||
__enable_irq();
|
||||
//__enable_irq();
|
||||
last_sts_lamp_bar_color = low4;
|
||||
//STS_WS2812B_Refresh();
|
||||
}
|
||||
|
||||
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;
|
||||
} 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
|
||||
UTIL_TIMER_Start(&STSLampBarColorTimer);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue