Define constant for "dipswitch" positions

This commit is contained in:
John Stäck 2019-07-25 07:50:29 +02:00
parent 7b179d4343
commit 671dfe9b2c
5 changed files with 87 additions and 72 deletions

View file

@ -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);

View file

@ -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 = {
@ -458,7 +453,7 @@ const MenuEntrySub legacyPBMenu = {
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
strncpy(out, legacy?"ON":"OFF", 4);
}, [](const MenuEntrySub & __unused sub) {
setBit(dipSwBits, 1, legacy);
setBit(dipSwBits, DIPSW_LEGACY, legacy);
writeSetting(DIPSW_BITS_ADDR,dipSwBits);
}
, nullptr
@ -469,7 +464,7 @@ const MenuEntrySub legacyBRMenu = {
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
strncpy(out, legacyBrAct?"ON":"OFF", 4);
}, [](const MenuEntrySub & __unused sub) {
setBit(dipSwBits, 2, legacyBrAct);
setBit(dipSwBits, DIPSW_LEGACYBRACT, legacyBrAct);
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
}
, nullptr
@ -480,7 +475,7 @@ const MenuEntrySub gateOpenMenu = {
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
strncpy(out, gateOpenEnable?"ON":"OFF", 4);
}, [](const MenuEntrySub & __unused sub) {
setBit(dipSwBits, 4, gateOpenEnable);
setBit(dipSwBits, DIPSW_GATEOPEN, gateOpenEnable);
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
}
, nullptr
@ -491,7 +486,7 @@ const MenuEntrySub specialKeyMenu = {
[](SubMenuRef __unused, char* out, const char ** __unused unit) {
strncpy(out, specialKeyEnable?"ON":"OFF", 4);
}, [](const MenuEntrySub & __unused sub) {
setBit(dipSwBits, 5, specialKeyEnable);
setBit(dipSwBits, DIPSW_SPKEYENABLE, specialKeyEnable);
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
}
, nullptr
@ -512,7 +507,7 @@ const MenuEntrySub bcasModeMenu = {
strncpy(out, bcasMode?"ON":"OFF", 4);
},
[](SubMenuRef __unused) {
setBit(dipSwBits, 6, bcasMode);
setBit(dipSwBits, DIPSW_BCASMODE, bcasMode);
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
}
, nullptr
@ -534,13 +529,12 @@ const MenuEntrySub fastBootMenu = {
strncpy(out, fastBoot?"ON":"OFF", 4);
},
[](SubMenuRef __unused) {
setBit(dipSwBits, 0, fastBoot);
setBit(dipSwBits, DIPSW_FASTBOOT, fastBoot);
writeSetting(DIPSW_BITS_ADDR, dipSwBits);
}
, nullptr
};
const MenuEntrySub wlPowerMenu = {
MenuType::ESub, "WL POWER", "WL POWER", &wlPower, 0, 3, MenuEntryFlags::ENone,
[](SubMenuRef __unused, char* out, const char** __unused unit) {

View file

@ -1,9 +1,9 @@
#include <Arduino.h>
#include "settings.h"
#include "globals.h"
#include "menu.h"
#include "hardware.h"
#include <Arduino.h>
//Read settings from eeprom. Returns wether or not anything was written (due to factory reset or upgrade)
bool readEEPROM() {
@ -149,10 +149,28 @@ bool readEEPROM() {
vibSensBite = readSetting(VIB_SENS_BITE_ADDR);
vibSquelchBite = readSetting(VIB_SQUELCH_BITE_ADDR);
vibControl = readSetting(VIB_CONTROL_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);
trill3_interval = readSetting(TRILL3_INTERVAL_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;
}
//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);
}

View file

@ -1,7 +1,8 @@
#ifndef __SETTINGS_H
#define __SETTINGS_H
#include <stdint.h>
// 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

View file

@ -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 \