Define constant for "dipswitch" positions
This commit is contained in:
parent
7b179d4343
commit
671dfe9b2c
5 changed files with 87 additions and 72 deletions
|
@ -269,14 +269,6 @@ void setup() {
|
||||||
//Read eeprom data into global vars
|
//Read eeprom data into global vars
|
||||||
readEEPROM();
|
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;
|
activePatch = patch;
|
||||||
|
|
||||||
touch_Thr = map(ctouchThrVal,ctouchHiLimit,ctouchLoLimit,ttouchLoLimit,ttouchHiLimit);
|
touch_Thr = map(ctouchThrVal,ctouchHiLimit,ctouchLoLimit,ttouchLoLimit,ttouchHiLimit);
|
||||||
|
|
|
@ -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<<pos)) | ((value?1:0)<<pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
//***********************************************************
|
//***********************************************************
|
||||||
|
|
||||||
const MenuEntrySub legacyPBMenu = {
|
const MenuEntrySub legacyPBMenu = {
|
||||||
|
@ -458,7 +453,7 @@ const MenuEntrySub legacyPBMenu = {
|
||||||
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
||||||
strncpy(out, legacy?"ON":"OFF", 4);
|
strncpy(out, legacy?"ON":"OFF", 4);
|
||||||
}, [](const MenuEntrySub & __unused sub) {
|
}, [](const MenuEntrySub & __unused sub) {
|
||||||
setBit(dipSwBits, 1, legacy);
|
setBit(dipSwBits, DIPSW_LEGACY, legacy);
|
||||||
writeSetting(DIPSW_BITS_ADDR,dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR,dipSwBits);
|
||||||
}
|
}
|
||||||
, nullptr
|
, nullptr
|
||||||
|
@ -469,7 +464,7 @@ const MenuEntrySub legacyBRMenu = {
|
||||||
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
||||||
strncpy(out, legacyBrAct?"ON":"OFF", 4);
|
strncpy(out, legacyBrAct?"ON":"OFF", 4);
|
||||||
}, [](const MenuEntrySub & __unused sub) {
|
}, [](const MenuEntrySub & __unused sub) {
|
||||||
setBit(dipSwBits, 2, legacyBrAct);
|
setBit(dipSwBits, DIPSW_LEGACYBRACT, legacyBrAct);
|
||||||
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
||||||
}
|
}
|
||||||
, nullptr
|
, nullptr
|
||||||
|
@ -480,7 +475,7 @@ const MenuEntrySub gateOpenMenu = {
|
||||||
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
||||||
strncpy(out, gateOpenEnable?"ON":"OFF", 4);
|
strncpy(out, gateOpenEnable?"ON":"OFF", 4);
|
||||||
}, [](const MenuEntrySub & __unused sub) {
|
}, [](const MenuEntrySub & __unused sub) {
|
||||||
setBit(dipSwBits, 4, gateOpenEnable);
|
setBit(dipSwBits, DIPSW_GATEOPEN, gateOpenEnable);
|
||||||
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
||||||
}
|
}
|
||||||
, nullptr
|
, nullptr
|
||||||
|
@ -491,7 +486,7 @@ const MenuEntrySub specialKeyMenu = {
|
||||||
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
|
||||||
strncpy(out, specialKeyEnable?"ON":"OFF", 4);
|
strncpy(out, specialKeyEnable?"ON":"OFF", 4);
|
||||||
}, [](const MenuEntrySub & __unused sub) {
|
}, [](const MenuEntrySub & __unused sub) {
|
||||||
setBit(dipSwBits, 5, specialKeyEnable);
|
setBit(dipSwBits, DIPSW_SPKEYENABLE, specialKeyEnable);
|
||||||
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
||||||
}
|
}
|
||||||
, nullptr
|
, nullptr
|
||||||
|
@ -512,7 +507,7 @@ const MenuEntrySub bcasModeMenu = {
|
||||||
strncpy(out, bcasMode?"ON":"OFF", 4);
|
strncpy(out, bcasMode?"ON":"OFF", 4);
|
||||||
},
|
},
|
||||||
[](SubMenuRef __unused) {
|
[](SubMenuRef __unused) {
|
||||||
setBit(dipSwBits, 6, bcasMode);
|
setBit(dipSwBits, DIPSW_BCASMODE, bcasMode);
|
||||||
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
||||||
}
|
}
|
||||||
, nullptr
|
, nullptr
|
||||||
|
@ -534,13 +529,12 @@ const MenuEntrySub fastBootMenu = {
|
||||||
strncpy(out, fastBoot?"ON":"OFF", 4);
|
strncpy(out, fastBoot?"ON":"OFF", 4);
|
||||||
},
|
},
|
||||||
[](SubMenuRef __unused) {
|
[](SubMenuRef __unused) {
|
||||||
setBit(dipSwBits, 0, fastBoot);
|
setBit(dipSwBits, DIPSW_FASTBOOT, fastBoot);
|
||||||
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
|
||||||
}
|
}
|
||||||
, nullptr
|
, nullptr
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const MenuEntrySub wlPowerMenu = {
|
const MenuEntrySub wlPowerMenu = {
|
||||||
MenuType::ESub, "WL POWER", "WL POWER", &wlPower, 0, 3, MenuEntryFlags::ENone,
|
MenuType::ESub, "WL POWER", "WL POWER", &wlPower, 0, 3, MenuEntryFlags::ENone,
|
||||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "hardware.h"
|
#include "hardware.h"
|
||||||
#include <Arduino.h>
|
|
||||||
|
|
||||||
|
|
||||||
//Read settings from eeprom. Returns wether or not anything was written (due to factory reset or upgrade)
|
//Read settings from eeprom. Returns wether or not anything was written (due to factory reset or upgrade)
|
||||||
bool readEEPROM() {
|
bool readEEPROM() {
|
||||||
|
@ -101,58 +101,76 @@ bool readEEPROM() {
|
||||||
|
|
||||||
|
|
||||||
// read all settings from EEPROM
|
// read all settings from EEPROM
|
||||||
breathThrVal = readSetting(BREATH_THR_ADDR);
|
breathThrVal = readSetting(BREATH_THR_ADDR);
|
||||||
breathMaxVal = readSetting(BREATH_MAX_ADDR);
|
breathMaxVal = readSetting(BREATH_MAX_ADDR);
|
||||||
portamThrVal = readSetting(PORTAM_THR_ADDR);
|
portamThrVal = readSetting(PORTAM_THR_ADDR);
|
||||||
portamMaxVal = readSetting(PORTAM_MAX_ADDR);
|
portamMaxVal = readSetting(PORTAM_MAX_ADDR);
|
||||||
pitchbThrVal = readSetting(PITCHB_THR_ADDR);
|
pitchbThrVal = readSetting(PITCHB_THR_ADDR);
|
||||||
pitchbMaxVal = readSetting(PITCHB_MAX_ADDR);
|
pitchbMaxVal = readSetting(PITCHB_MAX_ADDR);
|
||||||
transpose = readSetting(TRANSP_ADDR);
|
transpose = readSetting(TRANSP_ADDR);
|
||||||
MIDIchannel = readSetting(MIDI_ADDR);
|
MIDIchannel = readSetting(MIDI_ADDR);
|
||||||
breathCC = readSetting(BREATH_CC_ADDR);
|
breathCC = readSetting(BREATH_CC_ADDR);
|
||||||
breathAT = readSetting(BREATH_AT_ADDR);
|
breathAT = readSetting(BREATH_AT_ADDR);
|
||||||
velocity = readSetting(VELOCITY_ADDR);
|
velocity = readSetting(VELOCITY_ADDR);
|
||||||
portamento = readSetting(PORTAM_ADDR);
|
portamento = readSetting(PORTAM_ADDR);
|
||||||
PBdepth = readSetting(PB_ADDR);
|
PBdepth = readSetting(PB_ADDR);
|
||||||
extraCT = readSetting(EXTRA_ADDR);
|
extraCT = readSetting(EXTRA_ADDR);
|
||||||
vibrato = readSetting(VIBRATO_ADDR);
|
vibrato = readSetting(VIBRATO_ADDR);
|
||||||
deglitch = readSetting(DEGLITCH_ADDR);
|
deglitch = readSetting(DEGLITCH_ADDR);
|
||||||
extracThrVal = readSetting(EXTRAC_THR_ADDR);
|
extracThrVal = readSetting(EXTRAC_THR_ADDR);
|
||||||
extracMaxVal = readSetting(EXTRAC_MAX_ADDR);
|
extracMaxVal = readSetting(EXTRAC_MAX_ADDR);
|
||||||
patch = readSetting(PATCH_ADDR);
|
patch = readSetting(PATCH_ADDR);
|
||||||
octave = readSetting(OCTAVE_ADDR);
|
octave = readSetting(OCTAVE_ADDR);
|
||||||
ctouchThrVal = readSetting(CTOUCH_THR_ADDR);
|
ctouchThrVal = readSetting(CTOUCH_THR_ADDR);
|
||||||
curve = readSetting(BREATHCURVE_ADDR);
|
curve = readSetting(BREATHCURVE_ADDR);
|
||||||
velSmpDl = readSetting(VEL_SMP_DL_ADDR);
|
velSmpDl = readSetting(VEL_SMP_DL_ADDR);
|
||||||
velBias = readSetting(VEL_BIAS_ADDR);
|
velBias = readSetting(VEL_BIAS_ADDR);
|
||||||
pinkySetting = readSetting(PINKY_KEY_ADDR);
|
pinkySetting = readSetting(PINKY_KEY_ADDR);
|
||||||
fastPatch[0] = readSetting(FP1_ADDR);
|
fastPatch[0] = readSetting(FP1_ADDR);
|
||||||
fastPatch[1] = readSetting(FP2_ADDR);
|
fastPatch[1] = readSetting(FP2_ADDR);
|
||||||
fastPatch[2] = readSetting(FP3_ADDR);
|
fastPatch[2] = readSetting(FP3_ADDR);
|
||||||
fastPatch[3] = readSetting(FP4_ADDR);
|
fastPatch[3] = readSetting(FP4_ADDR);
|
||||||
fastPatch[4] = readSetting(FP5_ADDR);
|
fastPatch[4] = readSetting(FP5_ADDR);
|
||||||
fastPatch[5] = readSetting(FP6_ADDR);
|
fastPatch[5] = readSetting(FP6_ADDR);
|
||||||
fastPatch[6] = readSetting(FP7_ADDR);
|
fastPatch[6] = readSetting(FP7_ADDR);
|
||||||
dipSwBits = readSetting(DIPSW_BITS_ADDR);
|
dipSwBits = readSetting(DIPSW_BITS_ADDR);
|
||||||
parallel = readSetting(PARAL_ADDR);
|
parallel = readSetting(PARAL_ADDR);
|
||||||
rotations[0] = readSetting(ROTN1_ADDR);
|
rotations[0] = readSetting(ROTN1_ADDR);
|
||||||
rotations[1] = readSetting(ROTN2_ADDR);
|
rotations[1] = readSetting(ROTN2_ADDR);
|
||||||
rotations[2] = readSetting(ROTN3_ADDR);
|
rotations[2] = readSetting(ROTN3_ADDR);
|
||||||
rotations[3] = readSetting(ROTN4_ADDR);
|
rotations[3] = readSetting(ROTN4_ADDR);
|
||||||
priority = readSetting(PRIO_ADDR);
|
priority = readSetting(PRIO_ADDR);
|
||||||
vibSens = readSetting(VIB_SENS_ADDR);
|
vibSens = readSetting(VIB_SENS_ADDR);
|
||||||
vibRetn = readSetting(VIB_RETN_ADDR);
|
vibRetn = readSetting(VIB_RETN_ADDR);
|
||||||
vibSquelch = readSetting(VIB_SQUELCH_ADDR);
|
vibSquelch = readSetting(VIB_SQUELCH_ADDR);
|
||||||
vibDirection = readSetting(VIB_DIRECTION_ADDR);
|
vibDirection = readSetting(VIB_DIRECTION_ADDR);
|
||||||
breathCC2 = readSetting(BREATH_CC2_ADDR);
|
breathCC2 = readSetting(BREATH_CC2_ADDR);
|
||||||
breathCC2Rise = readSetting(BREATH_CC2_RISE_ADDR);
|
breathCC2Rise = readSetting(BREATH_CC2_RISE_ADDR);
|
||||||
vibSensBite = readSetting(VIB_SENS_BITE_ADDR);
|
vibSensBite = readSetting(VIB_SENS_BITE_ADDR);
|
||||||
vibSquelchBite = readSetting(VIB_SQUELCH_BITE_ADDR);
|
vibSquelchBite = readSetting(VIB_SQUELCH_BITE_ADDR);
|
||||||
vibControl = readSetting(VIB_CONTROL_ADDR);
|
vibControl = readSetting(VIB_CONTROL_ADDR);
|
||||||
|
dacMode = readSetting(DAC_MODE_ADDR);
|
||||||
trill3_interval = readSetting(TRILL3_INTERVAL_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<<DIPSW_FASTBOOT);
|
||||||
|
legacy = dipSwBits & (1<<DIPSW_LEGACY);
|
||||||
|
legacyBrAct = dipSwBits & (1<<DIPSW_LEGACYBRACT);
|
||||||
|
slowMidi = dipSwBits & (1<<DIPSW_SLOWMIDI);
|
||||||
|
gateOpenEnable = dipSwBits & (1<<DIPSW_GATEOPEN);
|
||||||
|
specialKeyEnable = dipSwBits & (1<<DIPSW_SPKEYENABLE);
|
||||||
|
bcasMode = dipSwBits & (1<<DIPSW_BCASMODE);
|
||||||
|
|
||||||
return hasWritten;
|
return hasWritten;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Poke at a certain bit in a bit field
|
||||||
|
void setBit(uint16_t &bitfield, const uint8_t pos, const uint16_t value) {
|
||||||
|
bitfield = (bitfield & ~(1<<pos)) | ((value?1:0)<<pos);
|
||||||
}
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
|
|
||||||
#ifndef __SETTINGS_H
|
#ifndef __SETTINGS_H
|
||||||
#define __SETTINGS_H
|
#define __SETTINGS_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
// EEPROM addresses for settings
|
// EEPROM addresses for settings
|
||||||
#define VERSION_ADDR 0
|
#define VERSION_ADDR 0
|
||||||
#define BREATH_THR_ADDR 2
|
#define BREATH_THR_ADDR 2
|
||||||
|
@ -61,6 +62,15 @@
|
||||||
#define DAC_MODE_BREATH 0
|
#define DAC_MODE_BREATH 0
|
||||||
#define DAC_MODE_PITCH 1
|
#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
|
//"factory" values for settings
|
||||||
#define EEPROM_VERSION 32
|
#define EEPROM_VERSION 32
|
||||||
#define BREATH_THR_FACTORY 1400
|
#define BREATH_THR_FACTORY 1400
|
||||||
|
@ -112,6 +122,7 @@
|
||||||
|
|
||||||
|
|
||||||
bool readEEPROM();
|
bool readEEPROM();
|
||||||
|
void setBit(uint16_t &bitfield, const uint8_t pos, const uint16_t value);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -28,6 +28,8 @@ TARGET=nuevisim
|
||||||
|
|
||||||
CXXFILES= ../NuEVI/menu.cpp \
|
CXXFILES= ../NuEVI/menu.cpp \
|
||||||
../NuEVI/adjustmenu.cpp \
|
../NuEVI/adjustmenu.cpp \
|
||||||
|
../NuEVI/midi.cpp \
|
||||||
|
../NuEVI/settings.cpp \
|
||||||
src/nuevisim.cpp \
|
src/nuevisim.cpp \
|
||||||
src/simeeprom.cpp \
|
src/simeeprom.cpp \
|
||||||
src/Print.cpp \
|
src/Print.cpp \
|
||||||
|
@ -35,8 +37,6 @@ CXXFILES= ../NuEVI/menu.cpp \
|
||||||
src/simwire.cpp \
|
src/simwire.cpp \
|
||||||
src/simusbmidi.cpp \
|
src/simusbmidi.cpp \
|
||||||
src/filters.cpp \
|
src/filters.cpp \
|
||||||
../NuEVI/midi.cpp \
|
|
||||||
../NuEVI/settings.cpp \
|
|
||||||
src/Adafruit_GFX_sim.cpp \
|
src/Adafruit_GFX_sim.cpp \
|
||||||
src/Adafruit_SSD1306_sim.cpp \
|
src/Adafruit_SSD1306_sim.cpp \
|
||||||
src/Adafruit_MPR121_sim.cpp \
|
src/Adafruit_MPR121_sim.cpp \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue