Removed clock with BG colour. Reduced frame time for longer strip

This commit is contained in:
nedko 2022-10-23 16:39:55 +03:00
parent 256ea53a2f
commit 2c6865643e

View File

@ -22,7 +22,7 @@
#define LED0_MS 500 #define LED0_MS 500
#define LED1_MS 500 #define LED1_MS 500
#define LED2_MS 500 #define LED2_MS 500
#define LED3_MS 500 #define LED3_MS 400
// ms offset // ms offset
#define LED0_MS_OFFSET 0 #define LED0_MS_OFFSET 0
@ -99,14 +99,13 @@ void draw_digit(uint8_t pos, uint8_t digit);
// Call function to show a frame and prepare idx for next frame // Call function to show a frame and prepare idx for next frame
void sun_and_moon(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led); void sun_and_moon(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led);
void clock_bg(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led);
void clock_no_bg(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led); void clock_no_bg(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led);
void loading(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led); void loading(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led);
void off(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led); void off(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led);
void (*func_list[5])(uint8_t, uint8_t*, uint8_t, uint8_t) = void (*func_list[5])(uint8_t, uint8_t*, uint8_t, uint8_t) =
{ {
sun_and_moon, clock_bg, clock_no_bg, loading, off sun_and_moon, clock_no_bg, loading, off
}; };
void (*send_ptr[4])(uint8_t) = void (*send_ptr[4])(uint8_t) =
@ -117,8 +116,6 @@ void (*send_ptr[4])(uint8_t) =
enum states enum states
{ {
STATE_SUN_MOON = 0, STATE_SUN_MOON = 0,
STATE_CLOCK_BG1,
STATE_CLOCK_BG2,
STATE_CLOCK_NO1, STATE_CLOCK_NO1,
STATE_CLOCK_NO2, STATE_CLOCK_NO2,
STATE_LOADING, STATE_LOADING,
@ -195,17 +192,6 @@ while(1)
{ {
case STATE_SUN_MOON: case STATE_SUN_MOON:
func_idx = 1; func_idx = 1;
colour_state = STATE_CLOCK_BG1;
colour = 0;
break;
case STATE_CLOCK_BG1:
colour_state = STATE_CLOCK_BG2;
colour = 1;
break;
case STATE_CLOCK_BG2:
func_idx = 2;
colour_state = STATE_CLOCK_NO1; colour_state = STATE_CLOCK_NO1;
colour = 0; colour = 0;
break; break;
@ -216,13 +202,13 @@ while(1)
break; break;
case STATE_CLOCK_NO2: case STATE_CLOCK_NO2:
func_idx = 3; func_idx = 2;
colour_state = STATE_LOADING; colour_state = STATE_LOADING;
colour = 0; colour = 0;
break; break;
case STATE_LOADING: case STATE_LOADING:
func_idx = 4; func_idx = 3;
PORTA ^= 0x20; PORTA ^= 0x20;
colour_state = STATE_PC; colour_state = STATE_PC;
break; break;
@ -513,45 +499,6 @@ void sun_and_moon(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led)
(*idx) %= count; (*idx) %= count;
} }
void clock_bg(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led)
{
uint8_t i;
uint8_t colour1[3] = {0xFF, 0x80, 0x00};
uint8_t colour2[3] = {0x00, 0x80, 0xFF};
if (colour == 0)
{
for (i = 0; i < count; ++i)
{
if (i == *idx)
{
send_pixel(colour1[0], colour1[1], colour1[2], led);
}
else
{
send_pixel(colour2[0], colour2[1], colour2[2], led);
}
}
}
else
{
for (i = 0; i < count; ++i)
{
if (i == *idx)
{
send_pixel(colour2[0], colour2[1], colour2[2], led);
}
else
{
send_pixel(colour1[0], colour1[1], colour1[2], led);
}
}
}
(*idx)++;
(*idx) %= count;
}
void clock_no_bg(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led) void clock_no_bg(uint8_t count, uint8_t* idx, uint8_t colour, uint8_t led)
{ {
uint8_t i; uint8_t i;