mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2025-04-02 11:29:17 +00:00
🎨 Misc. cleanup (from MMU3 PR)
Co-Authored-By: Erkan Ozgur Yilmaz <1786804+eoyilmaz@users.noreply.github.com>
This commit is contained in:
parent
8c78315f71
commit
0cd9643957
19 changed files with 60 additions and 64 deletions
.gitignore
Marlin/src
HAL/DUE
core
feature/leds
gcode
lcd
e3v2/proui
extui
dgus
dgus_e3s1pro
dgus_reloaded
ftdi_eve_touch_ui/cocoa_press
module
buildroot/share/PlatformIO/variants/MARLIN_TH3D_EZBOARD_V2
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -125,6 +125,7 @@ vc-fileutils.settings
|
||||||
# Visual Studio Code
|
# Visual Studio Code
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
# Simulation files
|
# Simulation files
|
||||||
imgui.ini
|
imgui.ini
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
static Flags<_Nbr_16timers> DisablePending; // ISR should disable the timer at the next timer reset
|
static Flags<_Nbr_16timers> DisablePending; // ISR should disable the timer at the next timer reset
|
||||||
|
|
||||||
// ------------------------
|
// ------------------------
|
||||||
/// Interrupt handler for the TC0 channel 1.
|
// Interrupt handler for the TC0 channel 1.
|
||||||
// ------------------------
|
// ------------------------
|
||||||
void Servo_Handler(const timer16_Sequence_t, Tc*, const uint8_t);
|
void Servo_Handler(const timer16_Sequence_t, Tc*, const uint8_t);
|
||||||
|
|
||||||
|
|
|
@ -75,8 +75,8 @@ template <> void SERIAL_ECHO(const p_float_t pf) { SERIAL_IMPL.print(pf.value, p
|
||||||
template <> void SERIAL_ECHO(const w_float_t wf) { char f1[20]; SERIAL_IMPL.print(dtostrf(wf.value, wf.width, wf.prec, f1)); }
|
template <> void SERIAL_ECHO(const w_float_t wf) { char f1[20]; SERIAL_IMPL.print(dtostrf(wf.value, wf.width, wf.prec, f1)); }
|
||||||
|
|
||||||
// Specializations for F-string
|
// Specializations for F-string
|
||||||
template <> void SERIAL_ECHO(const FSTR_P fstr) { SERIAL_ECHO_P(FTOP(fstr)); }
|
template <> void SERIAL_ECHO(FSTR_P const fstr) { SERIAL_ECHO_P(FTOP(fstr)); }
|
||||||
template <> void SERIAL_ECHOLN(const FSTR_P fstr) { SERIAL_ECHOLN_P(FTOP(fstr)); }
|
template <> void SERIAL_ECHOLN(FSTR_P const fstr) { SERIAL_ECHOLN_P(FTOP(fstr)); }
|
||||||
|
|
||||||
void SERIAL_CHAR(char a) { SERIAL_IMPL.write(a); }
|
void SERIAL_CHAR(char a) { SERIAL_IMPL.write(a); }
|
||||||
void SERIAL_EOL() { SERIAL_CHAR('\n'); }
|
void SERIAL_EOL() { SERIAL_CHAR('\n'); }
|
||||||
|
|
|
@ -171,8 +171,8 @@ template<> void SERIAL_ECHO(const p_float_t pf);
|
||||||
template<> void SERIAL_ECHO(const w_float_t wf);
|
template<> void SERIAL_ECHO(const w_float_t wf);
|
||||||
|
|
||||||
// Specializations for F-string
|
// Specializations for F-string
|
||||||
template<> void SERIAL_ECHO(const FSTR_P fstr);
|
template<> void SERIAL_ECHO(FSTR_P const fstr);
|
||||||
template<> void SERIAL_ECHOLN(const FSTR_P fstr);
|
template<> void SERIAL_ECHOLN(FSTR_P const fstr);
|
||||||
|
|
||||||
// Print any number of items with arbitrary types (except loose PROGMEM strings)
|
// Print any number of items with arbitrary types (except loose PROGMEM strings)
|
||||||
template <typename T, typename ... Args>
|
template <typename T, typename ... Args>
|
||||||
|
|
|
@ -83,7 +83,7 @@ void LEDLights::setup() {
|
||||||
if (i == 1 && PWM_PIN(RGB_LED_G_PIN)) hal.set_pwm_duty(pin_t(RGB_LED_G_PIN), led_pwm); else WRITE(RGB_LED_G_PIN, b < 100 ? HIGH : LOW);
|
if (i == 1 && PWM_PIN(RGB_LED_G_PIN)) hal.set_pwm_duty(pin_t(RGB_LED_G_PIN), led_pwm); else WRITE(RGB_LED_G_PIN, b < 100 ? HIGH : LOW);
|
||||||
if (i == 2 && PWM_PIN(RGB_LED_B_PIN)) hal.set_pwm_duty(pin_t(RGB_LED_B_PIN), led_pwm); else WRITE(RGB_LED_B_PIN, b < 100 ? HIGH : LOW);
|
if (i == 2 && PWM_PIN(RGB_LED_B_PIN)) hal.set_pwm_duty(pin_t(RGB_LED_B_PIN), led_pwm); else WRITE(RGB_LED_B_PIN, b < 100 ? HIGH : LOW);
|
||||||
#if ENABLED(RGBW_LED)
|
#if ENABLED(RGBW_LED)
|
||||||
if (i == 3){
|
if (i == 3) {
|
||||||
if (PWM_PIN(RGB_LED_W_PIN)) hal.set_pwm_duty(pin_t(RGB_LED_W_PIN), led_pwm);
|
if (PWM_PIN(RGB_LED_W_PIN)) hal.set_pwm_duty(pin_t(RGB_LED_W_PIN), led_pwm);
|
||||||
else WRITE(RGB_LED_W_PIN, b < 100 ? HIGH : LOW);
|
else WRITE(RGB_LED_W_PIN, b < 100 ? HIGH : LOW);
|
||||||
delay(RGB_STARTUP_TEST_INNER_MS);//More slowing for ending
|
delay(RGB_STARTUP_TEST_INNER_MS);//More slowing for ending
|
||||||
|
|
|
@ -99,6 +99,7 @@ void GcodeSuite::D(const int16_t dcode) {
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
#if ENABLED(EEPROM_SETTINGS)
|
#if ENABLED(EEPROM_SETTINGS)
|
||||||
|
|
||||||
case 3: { // D3 Read / Write EEPROM
|
case 3: { // D3 Read / Write EEPROM
|
||||||
uint8_t *pointer = parser.hex_adr_val('A');
|
uint8_t *pointer = parser.hex_adr_val('A');
|
||||||
uint16_t len = parser.ushortval('C', 1);
|
uint16_t len = parser.ushortval('C', 1);
|
||||||
|
@ -107,35 +108,27 @@ void GcodeSuite::D(const int16_t dcode) {
|
||||||
NOMORE(len, persistentStore.capacity() - addr);
|
NOMORE(len, persistentStore.capacity() - addr);
|
||||||
if (parser.seenval('X')) {
|
if (parser.seenval('X')) {
|
||||||
uint16_t val = parser.hex_val('X');
|
uint16_t val = parser.hex_val('X');
|
||||||
#if ENABLED(EEPROM_SETTINGS)
|
persistentStore.access_start();
|
||||||
persistentStore.access_start();
|
while (len--) {
|
||||||
while (len--) {
|
int pos = 0;
|
||||||
int pos = 0;
|
persistentStore.write_data(pos, (uint8_t *)&val, sizeof(val));
|
||||||
persistentStore.write_data(pos, (uint8_t *)&val, sizeof(val));
|
}
|
||||||
}
|
SERIAL_EOL();
|
||||||
SERIAL_EOL();
|
persistentStore.access_finish();
|
||||||
persistentStore.access_finish();
|
|
||||||
#else
|
|
||||||
SERIAL_ECHOLNPGM("NO EEPROM");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Read bytes from EEPROM
|
// Read bytes from EEPROM
|
||||||
#if ENABLED(EEPROM_SETTINGS)
|
persistentStore.access_start();
|
||||||
persistentStore.access_start();
|
int pos = 0;
|
||||||
int pos = 0;
|
uint8_t val;
|
||||||
uint8_t val;
|
while (len--) if (!persistentStore.read_data(pos, &val, 1)) print_hex_byte(val);
|
||||||
while (len--) if (!persistentStore.read_data(pos, &val, 1)) print_hex_byte(val);
|
SERIAL_EOL();
|
||||||
SERIAL_EOL();
|
persistentStore.access_finish();
|
||||||
persistentStore.access_finish();
|
|
||||||
#else
|
|
||||||
SERIAL_ECHOLNPGM("NO EEPROM");
|
|
||||||
len = 0;
|
|
||||||
#endif
|
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
#endif
|
|
||||||
|
#endif // EEPROM_SETTINGS
|
||||||
|
|
||||||
case 4: { // D4 Read / Write PIN
|
case 4: { // D4 Read / Write PIN
|
||||||
//const bool is_out = parser.boolval('F');
|
//const bool is_out = parser.boolval('F');
|
||||||
|
|
|
@ -1811,7 +1811,7 @@ void dwinPrintFinished() {
|
||||||
// Print was aborted
|
// Print was aborted
|
||||||
void dwinPrintAborted() {
|
void dwinPrintAborted() {
|
||||||
#ifndef EVENT_GCODE_SD_ABORT
|
#ifndef EVENT_GCODE_SD_ABORT
|
||||||
if (all_axes_homed()) {
|
if (ExtUI::isMachineHomed()) {
|
||||||
queue.inject(
|
queue.inject(
|
||||||
#if ENABLED(NOZZLE_PARK_FEATURE)
|
#if ENABLED(NOZZLE_PARK_FEATURE)
|
||||||
F("G27")
|
F("G27")
|
||||||
|
|
|
@ -114,11 +114,11 @@ extern DGUSDisplay dgus;
|
||||||
// compile-time x^y
|
// compile-time x^y
|
||||||
constexpr float cpow(const float x, const int y) { return y == 0 ? 1.0 : x * cpow(x, y - 1); }
|
constexpr float cpow(const float x, const int y) { return y == 0 ? 1.0 : x * cpow(x, y - 1); }
|
||||||
|
|
||||||
///
|
//
|
||||||
const uint16_t* findScreenVPMapList(uint8_t screen);
|
const uint16_t* findScreenVPMapList(uint8_t screen);
|
||||||
|
|
||||||
/// Find the flash address of a DGUS_VP_Variable for the VP.
|
// Find the flash address of a DGUS_VP_Variable for the VP.
|
||||||
const DGUS_VP_Variable* findVPVar(const uint16_t vp);
|
const DGUS_VP_Variable* findVPVar(const uint16_t vp);
|
||||||
|
|
||||||
/// Helper to populate a DGUS_VP_Variable for a given VP. Return false if not found.
|
// Helper to populate a DGUS_VP_Variable for a given VP. Return false if not found.
|
||||||
bool populate_VPVar(const uint16_t VP, DGUS_VP_Variable * const ramcopy);
|
bool populate_VPVar(const uint16_t VP, DGUS_VP_Variable * const ramcopy);
|
||||||
|
|
|
@ -48,9 +48,9 @@ enum DGUS_ScreenID : uint8_t {
|
||||||
DGUS_SCREEN_Z_OFFSET = 222,
|
DGUS_SCREEN_Z_OFFSET = 222,
|
||||||
DGUS_SCREEN_INFOS = 36,
|
DGUS_SCREEN_INFOS = 36,
|
||||||
DGUS_SCREEN_CONFIRM = 240,
|
DGUS_SCREEN_CONFIRM = 240,
|
||||||
DGUS_SCREEN_KILL = 250, ///< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
||||||
DGUS_SCREEN_WAITING = 251,
|
DGUS_SCREEN_WAITING = 251,
|
||||||
DGUS_SCREEN_POPUP = 252, ///< special target, popup screen will also return this code to say "return to previous screen"
|
DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen"
|
||||||
DGUS_SCREEN_UNUSED = 255
|
DGUS_SCREEN_UNUSED = 255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,9 @@ enum DGUS_ScreenID : uint8_t {
|
||||||
DGUS_SCREEN_PID_BED = 128,
|
DGUS_SCREEN_PID_BED = 128,
|
||||||
DGUS_SCREEN_INFOS = 131,
|
DGUS_SCREEN_INFOS = 131,
|
||||||
DGUS_SCREEN_CONFIRM = 240,
|
DGUS_SCREEN_CONFIRM = 240,
|
||||||
DGUS_SCREEN_KILL = 250, ///< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
||||||
DGUS_SCREEN_WAITING = 251,
|
DGUS_SCREEN_WAITING = 251,
|
||||||
DGUS_SCREEN_POPUP = 252, ///< special target, popup screen will also return this code to say "return to previous screen"
|
DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen"
|
||||||
DGUS_SCREEN_UNUSED = 255
|
DGUS_SCREEN_UNUSED = 255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -235,9 +235,9 @@ enum DGUS_ScreenID : uint8_t {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DGUS_SCREEN_CONFIRM = 240,
|
DGUS_SCREEN_CONFIRM = 240,
|
||||||
DGUS_SCREEN_KILL = 250, ///< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
||||||
DGUS_SCREEN_WAITING = 251,
|
DGUS_SCREEN_WAITING = 251,
|
||||||
DGUS_SCREEN_POPUP = 252, ///< special target, popup screen will also return this code to say "return to previous screen"
|
DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen"
|
||||||
DGUS_SCREEN_UNUSED = 255
|
DGUS_SCREEN_UNUSED = 255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -43,9 +43,9 @@ enum DGUS_ScreenID : uint8_t {
|
||||||
DGUS_SCREEN_FILAMENT_UNLOADING = 158,
|
DGUS_SCREEN_FILAMENT_UNLOADING = 158,
|
||||||
DGUS_SCREEN_SDPRINTTUNE = 170,
|
DGUS_SCREEN_SDPRINTTUNE = 170,
|
||||||
DGUS_SCREEN_CONFIRM = 240,
|
DGUS_SCREEN_CONFIRM = 240,
|
||||||
DGUS_SCREEN_KILL = 250, ///< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
|
||||||
DGUS_SCREEN_WAITING = 251,
|
DGUS_SCREEN_WAITING = 251,
|
||||||
DGUS_SCREEN_POPUP = 252, ///< special target, popup screen will also return this code to say "return to previous screen"
|
DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen"
|
||||||
DGUS_SCREEN_UNUSED = 255
|
DGUS_SCREEN_UNUSED = 255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -159,5 +159,5 @@ private:
|
||||||
|
|
||||||
extern DGUSDisplay dgus;
|
extern DGUSDisplay dgus;
|
||||||
|
|
||||||
/// Helper to populate a DGUS_VP for a given VP. Return false if not found.
|
// Helper to populate a DGUS_VP for a given VP. Return false if not found.
|
||||||
extern bool DGUS_PopulateVP(const DGUS_Addr addr, DGUS_VP * const buffer);
|
extern bool DGUS_PopulateVP(const DGUS_Addr addr, DGUS_VP * const buffer);
|
||||||
|
|
|
@ -117,11 +117,11 @@ public:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_MEDIA
|
#if HAS_MEDIA
|
||||||
/// Marlin informed us that a new SD has been inserted.
|
// Marlin informed us that a new SD has been inserted.
|
||||||
static void sdCardInserted();
|
static void sdCardInserted();
|
||||||
/// Marlin informed us that the SD Card has been removed().
|
// Marlin informed us that the SD Card has been removed().
|
||||||
static void sdCardRemoved();
|
static void sdCardRemoved();
|
||||||
/// Marlin informed us about a bad SD Card.
|
// Marlin informed us about a bad SD Card.
|
||||||
static void sdCardError();
|
static void sdCardError();
|
||||||
|
|
||||||
static const char* getSDCardPrintFilename() { return sdPrintFilename; }
|
static const char* getSDCardPrintFilename() { return sdPrintFilename; }
|
||||||
|
|
|
@ -178,5 +178,5 @@ template<> inline uint16_t DGUSDisplay::swapBytes(const uint16_t value) {
|
||||||
|
|
||||||
extern DGUSDisplay dgus;
|
extern DGUSDisplay dgus;
|
||||||
|
|
||||||
/// Helper to populate a DGUS_VP for a given VP. Return false if not found.
|
// Helper to populate a DGUS_VP for a given VP. Return false if not found.
|
||||||
extern bool populateVP(const DGUS_Addr addr, DGUS_VP * const buffer);
|
extern bool populateVP(const DGUS_Addr addr, DGUS_VP * const buffer);
|
||||||
|
|
|
@ -53,11 +53,11 @@ public:
|
||||||
static void filamentRunout(const ExtUI::extruder_t extruder);
|
static void filamentRunout(const ExtUI::extruder_t extruder);
|
||||||
|
|
||||||
#if HAS_MEDIA
|
#if HAS_MEDIA
|
||||||
/// Marlin informed us that a new SD has been inserted.
|
// Marlin informed us that a new SD has been inserted.
|
||||||
static void sdCardInserted();
|
static void sdCardInserted();
|
||||||
/// Marlin informed us that the SD Card has been removed().
|
// Marlin informed us that the SD Card has been removed().
|
||||||
static void sdCardRemoved();
|
static void sdCardRemoved();
|
||||||
/// Marlin informed us about a bad SD Card.
|
// Marlin informed us about a bad SD Card.
|
||||||
static void sdCardError();
|
static void sdCardError();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ void StatusScreen::send_buffer(CommandProcessor &cmd, const void *data, uint16_t
|
||||||
memcpy_P(block, ptr, nBytes);
|
memcpy_P(block, ptr, nBytes);
|
||||||
cmd.write((const void*)block, nBytes);
|
cmd.write((const void*)block, nBytes);
|
||||||
cmd.execute();
|
cmd.execute();
|
||||||
if(cmd.has_fault()) {
|
if (cmd.has_fault()) {
|
||||||
SERIAL_ECHOLNPGM("Recovering from fault: ");
|
SERIAL_ECHOLNPGM("Recovering from fault: ");
|
||||||
cmd.reset();
|
cmd.reset();
|
||||||
delay(1000);
|
delay(1000);
|
||||||
|
|
|
@ -161,12 +161,14 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
|
||||||
#define scalePID_d(d) ( float(d) / PID_dT )
|
#define scalePID_d(d) ( float(d) / PID_dT )
|
||||||
#define unscalePID_d(d) ( float(d) * PID_dT )
|
#define unscalePID_d(d) ( float(d) * PID_dT )
|
||||||
|
|
||||||
/// @brief The default PID class, only has Kp, Ki, Kd, other classes extend this one
|
/**
|
||||||
/// @tparam MIN_POW output when current is above target by functional_range
|
* @brief The default PID class, only has Kp, Ki, Kd, other classes extend this one
|
||||||
/// @tparam MAX_POW output when current is below target by functional_range
|
* @tparam MIN_POW output when current is above target by functional_range
|
||||||
/// @details This class has methods for Kc and Kf terms, but returns constant default values
|
* @tparam MAX_POW output when current is below target by functional_range
|
||||||
/// PID classes that implement these features are expected to override these methods
|
* @details This class has methods for Kc and Kf terms, but returns constant default values.
|
||||||
/// Since the finally used PID class is typedef-d, there is no need to use virtual functions
|
* PID classes that implement these features are expected to override these methods.
|
||||||
|
* Since the eventual PID class is typedef-d, there is no need to use virtual functions.
|
||||||
|
*/
|
||||||
template<int MIN_POW, int MAX_POW>
|
template<int MIN_POW, int MAX_POW>
|
||||||
struct PID_t {
|
struct PID_t {
|
||||||
protected:
|
protected:
|
||||||
|
@ -241,7 +243,7 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
|
||||||
|
|
||||||
#if ENABLED(PIDTEMP)
|
#if ENABLED(PIDTEMP)
|
||||||
|
|
||||||
/// @brief Extrusion scaled PID class
|
// @brief Extrusion scaled PID class
|
||||||
template<int MIN_POW, int MAX_POW, int LPQ_ARR_SZ>
|
template<int MIN_POW, int MAX_POW, int LPQ_ARR_SZ>
|
||||||
struct PIDC_t : public PID_t<MIN_POW, MAX_POW> {
|
struct PIDC_t : public PID_t<MIN_POW, MAX_POW> {
|
||||||
private:
|
private:
|
||||||
|
@ -293,11 +295,11 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// @brief Fan scaled PID, this class implements the get_fan_scale_output() method
|
// @brief Fan scaled PID, this class implements the get_fan_scale_output() method
|
||||||
/// @tparam MIN_POW @see PID_t
|
// @tparam MIN_POW @see PID_t
|
||||||
/// @tparam MAX_POW @see PID_t
|
// @tparam MAX_POW @see PID_t
|
||||||
/// @tparam SCALE_MIN_SPEED parameter from Configuration_adv.h
|
// @tparam SCALE_MIN_SPEED parameter from Configuration_adv.h
|
||||||
/// @tparam SCALE_LIN_FACTOR parameter from Configuration_adv.h
|
// @tparam SCALE_LIN_FACTOR parameter from Configuration_adv.h
|
||||||
template<int MIN_POW, int MAX_POW, int SCALE_MIN_SPEED, int SCALE_LIN_FACTOR>
|
template<int MIN_POW, int MAX_POW, int SCALE_MIN_SPEED, int SCALE_LIN_FACTOR>
|
||||||
struct PIDF_t : public PID_t<MIN_POW, MAX_POW> {
|
struct PIDF_t : public PID_t<MIN_POW, MAX_POW> {
|
||||||
private:
|
private:
|
||||||
|
@ -327,7 +329,7 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// @brief Inherits PID and PIDC - can't use proper diamond inheritance w/o virtual
|
// @brief Inherits PID and PIDC - can't use proper diamond inheritance w/o virtual
|
||||||
template<int MIN_POW, int MAX_POW, int LPQ_ARR_SZ, int SCALE_MIN_SPEED, int SCALE_LIN_FACTOR>
|
template<int MIN_POW, int MAX_POW, int LPQ_ARR_SZ, int SCALE_MIN_SPEED, int SCALE_LIN_FACTOR>
|
||||||
struct PIDCF_t : public PIDC_t<MIN_POW, MAX_POW, LPQ_ARR_SZ> {
|
struct PIDCF_t : public PIDC_t<MIN_POW, MAX_POW, LPQ_ARR_SZ> {
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -86,7 +86,7 @@ extern "C" {
|
||||||
#define PH1 50 // | 50 | | | | | | OSC_OUT |
|
#define PH1 50 // | 50 | | | | | | OSC_OUT |
|
||||||
// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
|
// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
|
||||||
|
|
||||||
/// This must be a literal
|
// This must be a literal
|
||||||
#define NUM_DIGITAL_PINS 51
|
#define NUM_DIGITAL_PINS 51
|
||||||
#define NUM_ANALOG_INPUTS 16
|
#define NUM_ANALOG_INPUTS 16
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue