- First complete version of firmware. Currently being tested in the rehearsal room

- Added bunch of screens, fonts and images
 - Added script to read out frame buffer (function currently disabled in Firmware)
This commit is contained in:
2025-10-26 20:57:58 +01:00
parent 90bca063e6
commit 89c875e38f
62 changed files with 4668 additions and 489 deletions

View File

@@ -11,9 +11,11 @@
#include "Hue.h"
#include "Command.h"
#include "Screens.h"
// #include "OLED_SSD1306.h"
#include "EEPROM_M24C64.h"
#include "Command_Definition.h"
#include "Display_Default_Configurations.h"
#include "pico/rand.h"
// ============================================================================================
@@ -26,19 +28,19 @@
// Variables
static volatile Mode _Current_Mode;
static volatile uint _Jam_Current_Angle;
static volatile uint _Jam_Next_Angle;
static volatile uint32_t _Jam_Current_Angle;
static volatile uint32_t _Jam_Next_Angle;
static volatile uint _Jam_Duration_Until_Next_s;
static volatile uint _Jam_Timer;
static volatile uint32_t _Jam_Duration_Until_Next_s;
static volatile uint32_t _Jam_Timer;
// ============================================================================================
// Function Declarations
void Mode_Manager_Jam_Mode_Init(void);
uint Mode_Manager_Jam_Select_Next_Angle(uint current_angle);
uint Mode_Manager_Jam_Get_Duration(void);
void Mode_Manager_Jam_Set_Color(uint angle);
uint32_t Mode_Manager_Jam_Select_Next_Angle(uint32_t current_angle);
uint32_t Mode_Manager_Jam_Get_Duration(void);
void Mode_Manager_Jam_Set_Color(uint32_t angle);
void Mode_Manager_Jam_Step(void);
@@ -72,8 +74,7 @@ void Mode_Manager_Cycle_Mode(void)
Mode_Manager_Set_Mode(_Current_Mode);
// ToDo
// Screen_Setup_0_Mode_Change(TRANSITION_NONE, _Current_Mode);
Screen_Setup_Mode_Change(TRANSITION_NONE, TRANSITION_NONE, SCREEN_TRANSITION_DEFAULT_EASING, SCREEN_TRANSITION_DEFAULT_FRAMES, _Current_Mode);
}
void Mode_Manager_Set_Mode(Mode mode)
@@ -174,27 +175,27 @@ void Mode_Manager_Jam_Mode_Init(void)
Mode_Manager_Jam_Set_Color(_Jam_Current_Angle);
}
uint Mode_Manager_Jam_Select_Next_Angle(uint current_angle)
uint32_t Mode_Manager_Jam_Select_Next_Angle(uint32_t current_angle)
{
uint ADC_Value = 5;//ADC_Get_Result_Oldest();
uint Angle_Step = ((ADC_Value & 0x07) + 1) * _EEPROM_Content.Jam_Light_Configuration.Color_Change;
uint32_t Random_Value = get_rand_32();
uint32_t Angle_Step = ((Random_Value & 0x07) + 1) * _EEPROM_Content.Jam_Light_Configuration.Color_Change;
return (current_angle + Angle_Step) % 360;
}
uint Mode_Manager_Jam_Get_Duration(void)
uint32_t Mode_Manager_Jam_Get_Duration(void)
{
uint Duration_Span_s = _EEPROM_Content.Jam_Light_Configuration.Duration_Max_s - _EEPROM_Content.Jam_Light_Configuration.Duration_Min_s;
uint32_t Duration_Span_s = _EEPROM_Content.Jam_Light_Configuration.Durations.Max - _EEPROM_Content.Jam_Light_Configuration.Durations.Min;
uint ADC_Value = 5;//ADC_Get_Result_Newest();
uint Factor = ((ADC_Value & 0x07) << 4);
uint32_t Random_Value = get_rand_32();
uint32_t Factor = ((Random_Value & 0x07) << 4);
Duration_Span_s = (Duration_Span_s * Factor) / 112;
return _EEPROM_Content.Jam_Light_Configuration.Duration_Min_s + Duration_Span_s;
return _EEPROM_Content.Jam_Light_Configuration.Durations.Min + Duration_Span_s;
}
void Mode_Manager_Jam_Set_Color(uint angle)
void Mode_Manager_Jam_Set_Color(uint32_t angle)
{
LED_Data_t Color;
Color.Pixel = Hue_Get_Color_From_Angle(angle);