From 671dfe9b2c8d1a2e72c66069b786cc0fd07f901f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20St=C3=A4ck?= Date: Thu, 25 Jul 2019 07:50:29 +0200 Subject: [PATCH] Define constant for "dipswitch" positions --- NuEVI/NuEVI.ino | 8 --- NuEVI/menu.cpp | 18 +++---- NuEVI/settings.cpp | 116 +++++++++++++++++++++++++------------------- NuEVI/settings.h | 13 ++++- simulation/Makefile | 4 +- 5 files changed, 87 insertions(+), 72 deletions(-) diff --git a/NuEVI/NuEVI.ino b/NuEVI/NuEVI.ino index fdabeef..88dd235 100644 --- a/NuEVI/NuEVI.ino +++ b/NuEVI/NuEVI.ino @@ -269,14 +269,6 @@ void setup() { //Read eeprom data into global vars readEEPROM(); - //Parse out flags from bit field - fastBoot = dipSwBits & (1<<0); - legacy = dipSwBits & (1<<1); - legacyBrAct = dipSwBits & (1<<2); - slowMidi = dipSwBits & (1<<3); - gateOpenEnable = dipSwBits & (1<<4); - specialKeyEnable = dipSwBits & (1<<5); - bcasMode = dipSwBits & (1<<6); activePatch = patch; touch_Thr = map(ctouchThrVal,ctouchHiLimit,ctouchLoLimit,ttouchLoLimit,ttouchHiLimit); diff --git a/NuEVI/menu.cpp b/NuEVI/menu.cpp index 286e4dd..a0e2808 100644 --- a/NuEVI/menu.cpp +++ b/NuEVI/menu.cpp @@ -446,11 +446,6 @@ static void midiCustomDrawFunc(SubMenuRef __unused, char* __unused, const char** } } -//Poke at a certain bit in a bit field -void setBit(uint16_t &bitfield, const uint8_t pos, const uint8_t value) { - bitfield = (bitfield & ~(1< + #include "settings.h" #include "globals.h" #include "menu.h" #include "hardware.h" -#include - //Read settings from eeprom. Returns wether or not anything was written (due to factory reset or upgrade) bool readEEPROM() { @@ -101,58 +101,76 @@ bool readEEPROM() { // read all settings from EEPROM - breathThrVal = readSetting(BREATH_THR_ADDR); - breathMaxVal = readSetting(BREATH_MAX_ADDR); - portamThrVal = readSetting(PORTAM_THR_ADDR); - portamMaxVal = readSetting(PORTAM_MAX_ADDR); - pitchbThrVal = readSetting(PITCHB_THR_ADDR); - pitchbMaxVal = readSetting(PITCHB_MAX_ADDR); - transpose = readSetting(TRANSP_ADDR); - MIDIchannel = readSetting(MIDI_ADDR); - breathCC = readSetting(BREATH_CC_ADDR); - breathAT = readSetting(BREATH_AT_ADDR); - velocity = readSetting(VELOCITY_ADDR); - portamento = readSetting(PORTAM_ADDR); - PBdepth = readSetting(PB_ADDR); - extraCT = readSetting(EXTRA_ADDR); - vibrato = readSetting(VIBRATO_ADDR); - deglitch = readSetting(DEGLITCH_ADDR); - extracThrVal = readSetting(EXTRAC_THR_ADDR); - extracMaxVal = readSetting(EXTRAC_MAX_ADDR); - patch = readSetting(PATCH_ADDR); - octave = readSetting(OCTAVE_ADDR); - ctouchThrVal = readSetting(CTOUCH_THR_ADDR); - curve = readSetting(BREATHCURVE_ADDR); - velSmpDl = readSetting(VEL_SMP_DL_ADDR); - velBias = readSetting(VEL_BIAS_ADDR); - pinkySetting = readSetting(PINKY_KEY_ADDR); - fastPatch[0] = readSetting(FP1_ADDR); - fastPatch[1] = readSetting(FP2_ADDR); - fastPatch[2] = readSetting(FP3_ADDR); - fastPatch[3] = readSetting(FP4_ADDR); - fastPatch[4] = readSetting(FP5_ADDR); - fastPatch[5] = readSetting(FP6_ADDR); - fastPatch[6] = readSetting(FP7_ADDR); - dipSwBits = readSetting(DIPSW_BITS_ADDR); - parallel = readSetting(PARAL_ADDR); - rotations[0] = readSetting(ROTN1_ADDR); - rotations[1] = readSetting(ROTN2_ADDR); - rotations[2] = readSetting(ROTN3_ADDR); - rotations[3] = readSetting(ROTN4_ADDR); - priority = readSetting(PRIO_ADDR); - vibSens = readSetting(VIB_SENS_ADDR); - vibRetn = readSetting(VIB_RETN_ADDR); - vibSquelch = readSetting(VIB_SQUELCH_ADDR); - vibDirection = readSetting(VIB_DIRECTION_ADDR); - breathCC2 = readSetting(BREATH_CC2_ADDR); + breathThrVal = readSetting(BREATH_THR_ADDR); + breathMaxVal = readSetting(BREATH_MAX_ADDR); + portamThrVal = readSetting(PORTAM_THR_ADDR); + portamMaxVal = readSetting(PORTAM_MAX_ADDR); + pitchbThrVal = readSetting(PITCHB_THR_ADDR); + pitchbMaxVal = readSetting(PITCHB_MAX_ADDR); + transpose = readSetting(TRANSP_ADDR); + MIDIchannel = readSetting(MIDI_ADDR); + breathCC = readSetting(BREATH_CC_ADDR); + breathAT = readSetting(BREATH_AT_ADDR); + velocity = readSetting(VELOCITY_ADDR); + portamento = readSetting(PORTAM_ADDR); + PBdepth = readSetting(PB_ADDR); + extraCT = readSetting(EXTRA_ADDR); + vibrato = readSetting(VIBRATO_ADDR); + deglitch = readSetting(DEGLITCH_ADDR); + extracThrVal = readSetting(EXTRAC_THR_ADDR); + extracMaxVal = readSetting(EXTRAC_MAX_ADDR); + patch = readSetting(PATCH_ADDR); + octave = readSetting(OCTAVE_ADDR); + ctouchThrVal = readSetting(CTOUCH_THR_ADDR); + curve = readSetting(BREATHCURVE_ADDR); + velSmpDl = readSetting(VEL_SMP_DL_ADDR); + velBias = readSetting(VEL_BIAS_ADDR); + pinkySetting = readSetting(PINKY_KEY_ADDR); + fastPatch[0] = readSetting(FP1_ADDR); + fastPatch[1] = readSetting(FP2_ADDR); + fastPatch[2] = readSetting(FP3_ADDR); + fastPatch[3] = readSetting(FP4_ADDR); + fastPatch[4] = readSetting(FP5_ADDR); + fastPatch[5] = readSetting(FP6_ADDR); + fastPatch[6] = readSetting(FP7_ADDR); + dipSwBits = readSetting(DIPSW_BITS_ADDR); + parallel = readSetting(PARAL_ADDR); + rotations[0] = readSetting(ROTN1_ADDR); + rotations[1] = readSetting(ROTN2_ADDR); + rotations[2] = readSetting(ROTN3_ADDR); + rotations[3] = readSetting(ROTN4_ADDR); + priority = readSetting(PRIO_ADDR); + vibSens = readSetting(VIB_SENS_ADDR); + vibRetn = readSetting(VIB_RETN_ADDR); + vibSquelch = readSetting(VIB_SQUELCH_ADDR); + vibDirection = readSetting(VIB_DIRECTION_ADDR); + breathCC2 = readSetting(BREATH_CC2_ADDR); breathCC2Rise = readSetting(BREATH_CC2_RISE_ADDR); vibSensBite = readSetting(VIB_SENS_BITE_ADDR); vibSquelchBite = readSetting(VIB_SQUELCH_BITE_ADDR); vibControl = readSetting(VIB_CONTROL_ADDR); - + dacMode = readSetting(DAC_MODE_ADDR); trill3_interval = readSetting(TRILL3_INTERVAL_ADDR); - if(trill3_interval<3 || trill3_interval > 4) trill3_interval = TRILL3_INTERVAL_FACTORY; //Deal with possible bad values - dacMode = readSetting(DAC_MODE_ADDR); + + if(trill3_interval<3 || trill3_interval > 4) trill3_interval = TRILL3_INTERVAL_FACTORY; //Deal with possible zero/bad values + + + + //Flags stored in bit field + fastBoot = dipSwBits & (1< + // EEPROM addresses for settings #define VERSION_ADDR 0 #define BREATH_THR_ADDR 2 @@ -61,6 +62,15 @@ #define DAC_MODE_BREATH 0 #define DAC_MODE_PITCH 1 +#define DIPSW_FASTBOOT 0 +#define DIPSW_LEGACY 1 +#define DIPSW_LEGACYBRACT 2 +#define DIPSW_SLOWMIDI 3 +#define DIPSW_GATEOPEN 4 +#define DIPSW_SPKEYENABLE 5 +#define DIPSW_BCASMODE 6 + + //"factory" values for settings #define EEPROM_VERSION 32 #define BREATH_THR_FACTORY 1400 @@ -112,6 +122,7 @@ bool readEEPROM(); +void setBit(uint16_t &bitfield, const uint8_t pos, const uint16_t value); #endif diff --git a/simulation/Makefile b/simulation/Makefile index 22f646f..903471c 100644 --- a/simulation/Makefile +++ b/simulation/Makefile @@ -28,6 +28,8 @@ TARGET=nuevisim CXXFILES= ../NuEVI/menu.cpp \ ../NuEVI/adjustmenu.cpp \ + ../NuEVI/midi.cpp \ + ../NuEVI/settings.cpp \ src/nuevisim.cpp \ src/simeeprom.cpp \ src/Print.cpp \ @@ -35,8 +37,6 @@ CXXFILES= ../NuEVI/menu.cpp \ src/simwire.cpp \ src/simusbmidi.cpp \ src/filters.cpp \ - ../NuEVI/midi.cpp \ - ../NuEVI/settings.cpp \ src/Adafruit_GFX_sim.cpp \ src/Adafruit_SSD1306_sim.cpp \ src/Adafruit_MPR121_sim.cpp \