- 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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user