From 3a5f3497be14ab3fa7945caf4451d7614115c1dd Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Thu, 6 Sep 2018 17:42:18 -0600 Subject: merged recent updates from Anduril, removed non-Emisar build targets --- spaghetti-monster/rampingios/rampingiosv3.c | 35 +++++++++++++++++++---------- 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'spaghetti-monster/rampingios/rampingiosv3.c') diff --git a/spaghetti-monster/rampingios/rampingiosv3.c b/spaghetti-monster/rampingios/rampingiosv3.c index 8dbd08f..de2de62 100644 --- a/spaghetti-monster/rampingios/rampingiosv3.c +++ b/spaghetti-monster/rampingios/rampingiosv3.c @@ -19,13 +19,16 @@ /********* User-configurable options *********/ // Physical driver type (uncomment one of the following or define it at the gcc command line) +//#define FSM_BLF_GT_DRIVER +//#define FSM_BLF_GT_MINI_DRIVER +//#define FSM_BLF_Q8_DRIVER +//#define FSM_EMISAR_D1_DRIVER +//#define FSM_EMISAR_D1S_DRIVER //#define FSM_EMISAR_D4_DRIVER //#define FSM_EMISAR_D4S_DRIVER //#define FSM_EMISAR_D4S_219c_DRIVER -//#define FSM_BLF_Q8_DRIVER +//#define FSM_FF_ROT66_DRIVER //#define FSM_FW3A_DRIVER -//#define FSM_BLF_GT_DRIVER -//#define FSM_BLF_GT_MINI_DRIVER #define USE_LVP // FIXME: won't build when this option is turned off @@ -73,6 +76,9 @@ #elif defined(FSM_EMISAR_D4S_DRIVER) #include "cfg-emisar-d4s.h" +#elif defined(FSM_FF_ROT66_DRIVER) +#include "cfg-ff-rot66.h" + #elif defined(FSM_FW3A_DRIVER) #include "cfg-fw3a.h" @@ -203,15 +209,19 @@ volatile uint8_t ramp_discrete_steps = RAMP_DISCRETE_STEPS; uint8_t ramp_discrete_step_size; // don't set this #ifdef USE_INDICATOR_LED -// bits 2-3 control lockout mode -// bits 0-1 control "off" mode -// modes are: 0=off, 1=low, 2=high, 3=blinking (if TICK_DURING_STANDBY enabled) -#ifdef USE_INDICATOR_LED_WHILE_RAMPING -//uint8_t indicator_led_mode = (1<<2) + 2; -uint8_t indicator_led_mode = (2<<2) + 1; -#else -uint8_t indicator_led_mode = (3<<2) + 1; -#endif + // bits 2-3 control lockout mode + // bits 0-1 control "off" mode + // modes are: 0=off, 1=low, 2=high, 3=blinking (if TICK_DURING_STANDBY enabled) + #ifdef INDICATOR_LED_DEFAULT_MODE + uint8_t indicator_led_mode = INDICATOR_LED_DEFAULT_MODE; + #else + #ifdef USE_INDICATOR_LED_WHILE_RAMPING + //uint8_t indicator_led_mode = (1<<2) + 2; + uint8_t indicator_led_mode = (2<<2) + 1; + #else + uint8_t indicator_led_mode = (3<<2) + 1; + #endif + #endif #endif // calculate the nearest ramp level which would be valid at the moment @@ -605,6 +615,7 @@ uint8_t steady_state(EventPtr event, uint16_t arg) { #else set_level(THERM_FASTER_LEVEL); #endif + target_level = THERM_FASTER_LEVEL; } else #endif if (actual_level > MIN_THERM_STEPDOWN) { -- cgit v1.2.3 From c0d79d1f4151cd5a4b52167864c0c37422452bc9 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Sat, 29 Sep 2018 15:45:26 -0600 Subject: Applied recent Anduril updates to RampingIOS V3: - D4-219C build target. - Moon timing hint. - Better timing consistency on hold-from-off. - Fixed bug where changing ramp style could go to the wrong brightness level. --- spaghetti-monster/rampingios/rampingiosv3.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'spaghetti-monster/rampingios/rampingiosv3.c') diff --git a/spaghetti-monster/rampingios/rampingiosv3.c b/spaghetti-monster/rampingios/rampingiosv3.c index de2de62..5c8f7ea 100644 --- a/spaghetti-monster/rampingios/rampingiosv3.c +++ b/spaghetti-monster/rampingios/rampingiosv3.c @@ -25,8 +25,9 @@ //#define FSM_EMISAR_D1_DRIVER //#define FSM_EMISAR_D1S_DRIVER //#define FSM_EMISAR_D4_DRIVER +//#define FSM_EMISAR_D4_219C_DRIVER //#define FSM_EMISAR_D4S_DRIVER -//#define FSM_EMISAR_D4S_219c_DRIVER +//#define FSM_EMISAR_D4S_219C_DRIVER //#define FSM_FF_ROT66_DRIVER //#define FSM_FW3A_DRIVER @@ -36,6 +37,10 @@ #define USE_THERMAL_REGULATION #define DEFAULT_THERM_CEIL 45 // try not to get hotter than this +// short blip when crossing from "click" to "hold" from off +// (helps the user hit moon mode exactly, instead of holding too long +// or too short) +#define MOON_TIMING_HINT // short blips while ramping #define BLINK_AT_CHANNEL_BOUNDARIES //#define BLINK_AT_RAMP_FLOOR @@ -67,10 +72,13 @@ #elif defined(FSM_EMISAR_D1S_DRIVER) #include "cfg-emisar-d1s.h" +#elif defined(FSM_EMISAR_D4_219C_DRIVER) +#include "cfg-emisar-d4-219c.h" + #elif defined(FSM_EMISAR_D4_DRIVER) #include "cfg-emisar-d4.h" -#elif defined(FSM_EMISAR_D4S_219c_DRIVER) +#elif defined(FSM_EMISAR_D4S_219C_DRIVER) #include "cfg-emisar-d4s-219c.h" #elif defined(FSM_EMISAR_D4S_DRIVER) @@ -275,9 +283,19 @@ uint8_t off_state(EventPtr event, uint16_t arg) { } // hold: go to lowest level else if (event == EV_click1_hold) { + #ifdef MOON_TIMING_HINT + if (arg == 0) { + // let the user know they can let go now to stay at moon + uint8_t temp = actual_level; + set_level(0); + delay_4ms(2); + set_level(temp); + } else + #endif // don't start ramping immediately; // give the user time to release at moon level - if (arg >= HOLD_TIMEOUT) { + //if (arg >= HOLD_TIMEOUT) { // smaller + if (arg >= (!ramp_style) * HOLD_TIMEOUT) { // more consistent set_state(steady_state, 1); } return MISCHIEF_MANAGED; @@ -410,7 +428,7 @@ uint8_t steady_state(EventPtr event, uint16_t arg) { // 3 clicks: toggle smooth vs discrete ramping else if (event == EV_3clicks) { ramp_style = !ramp_style; - memorized_level = nearest_level(memorized_level); + memorized_level = nearest_level(actual_level); #ifdef USE_THERMAL_REGULATION target_level = memorized_level; #ifdef USE_SET_LEVEL_GRADUALLY -- cgit v1.2.3