More SRAM optimisations. Needs testing

This commit is contained in:
Oleksiy
2024-07-31 18:17:39 +03:00
parent 8346c4d764
commit b244049db5
2 changed files with 65 additions and 79 deletions

View File

@ -6,7 +6,8 @@
#include <avr/wdt.h> #include <avr/wdt.h>
#include <NeoHWSerial.h> #include <NeoHWSerial.h>
const char version[5] = "1.1.1"; //const char version[5] = "1.1.1";
String version = "1.1.1";
#define SCREEN_ADDRESS 0x3C #define SCREEN_ADDRESS 0x3C
@ -42,13 +43,13 @@ bool reverseEnc = false;
#define ANALOGUE_INPUT_2_PIN A1 #define ANALOGUE_INPUT_2_PIN A1
const byte clockOutPin = 13; const byte clockOutPin = 13;
const int outsPins[6] = {6, 11, 7, 10, 8, 9}; const byte outsPins[6] = {6, 11, 7, 10, 8, 9};
bool rotateScreen = true; bool rotateScreen = true;
*/ */
int CV1Calibration = 512; uint16_t CV1Calibration = 512;
int CV2Calibration = 512; uint16_t CV2Calibration = 512;
bool showDone = false; bool showDone = false;
const int subDivs[20] = { -24, -12, -8, -6, -4, -3, -2, 1, 2, 3, 4, 5, 6, 7, 8, 16, 24, 32, 64, 128 }; //positive - divide, negative - multiply, 0 - off const int subDivs[20] = { -24, -12, -8, -6, -4, -3, -2, 1, 2, 3, 4, 5, 6, 7, 8, 16, 24, 32, 64, 128 }; //positive - divide, negative - multiply, 0 - off
@ -64,7 +65,7 @@ struct channel {
byte CV1Range; byte CV1Range;
byte CV2Target; byte CV2Target;
byte CV2Range; byte CV2Range;
unsigned int offset; uint8_t offset;
byte random; byte random;
byte seqPattern; byte seqPattern;
}; };
@ -662,7 +663,7 @@ void reboot() {
void calibrateCVs() { void calibrateCVs() {
CV1Calibration = analogRead(ANALOGUE_INPUT_1_PIN); CV1Calibration = analogRead(ANALOGUE_INPUT_1_PIN);
CV2Calibration = analogRead(ANALOGUE_INPUT_2_PIN); CV2Calibration = analogRead(ANALOGUE_INPUT_2_PIN);
//saveState(); saveState();
showDone = true; showDone = true;
updateScreen(); updateScreen();
} }

View File

@ -4,9 +4,7 @@ void updateScreen() {
do { do {
byte leftOffset; byte leftOffset;
byte width; byte width;
//String textToShow;
String valueStr; String valueStr;
//char valueChar[16];
u8g2.setDrawColor(1); u8g2.setDrawColor(1);
if (displayScreen == 0) { if (displayScreen == 0) {
@ -31,15 +29,14 @@ void updateScreen() {
for (byte i = 1; i <= lastMenuItem; i++) { for (byte i = 1; i <= lastMenuItem; i++) {
if (i == 1) { if (i == 1) {
valueStr = "MODE:"; valueStr = F("MODE:");
} else if (i == 2 && masterClockMode == 0) { } else if (i == 2 && masterClockMode == 0) {
valueStr = "MOD:"; valueStr = F("MOD:");
} else if (i == 2 && masterClockMode == 1) { } else if (i == 2 && masterClockMode == 1) {
valueStr = "PPQN:"; valueStr = F("PPQN:");
} else if (i == 3 && masterClockMode == 0) { } else if (i == 3 && masterClockMode == 0) {
valueStr = "RANGE:"; valueStr = F("RANGE:");
} }
//valueStr.toCharArray(valueChar, 16);
if (menuItem == i && insideTab) { if (menuItem == i && insideTab) {
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() ); u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() );
} else { } else {
@ -53,26 +50,24 @@ void updateScreen() {
//Values //Values
for (byte i = 1; i <= lastMenuItem; i++) { for (byte i = 1; i <= lastMenuItem; i++) {
if (i == 1 && masterClockMode == 0) { //Channel mode if (i == 1 && masterClockMode == 0) { //Channel mode
valueStr = "INT"; valueStr = F("INT");
} else if (i == 1 && masterClockMode == 1) { } else if (i == 1 && masterClockMode == 1) {
valueStr = "EXT"; valueStr = F("EXT");
} else if (i == 1 && masterClockMode == 2) { } else if (i == 1 && masterClockMode == 2) {
valueStr = "MIDI"; valueStr = F("MIDI");
} else if (i == 2 && masterClockMode == 0 && bpmModulationRange != 0 && bpmModulationChannel == 0) { } else if (i == 2 && masterClockMode == 0 && bpmModulationRange != 0 && bpmModulationChannel == 0) {
valueStr = "CV1"; valueStr = F("CV1");
} else if (i == 2 && masterClockMode == 0 && bpmModulationRange != 0 && bpmModulationChannel == 1) { } else if (i == 2 && masterClockMode == 0 && bpmModulationRange != 0 && bpmModulationChannel == 1) {
valueStr = "CV2"; valueStr = F("CV2");
} else if (i == 2 && masterClockMode == 0 && bpmModulationRange == 0) { } else if (i == 2 && masterClockMode == 0 && bpmModulationRange == 0) {
valueStr = "OFF"; valueStr = F("OFF");
} else if (i == 2 && masterClockMode == 1 && extClockPPQN == 0) { } else if (i == 2 && masterClockMode == 1 && extClockPPQN == 0) {
valueStr = "24"; valueStr = F("24");
} else if (i == 2 && masterClockMode == 1 && extClockPPQN == 1) { } else if (i == 2 && masterClockMode == 1 && extClockPPQN == 1) {
valueStr = "4"; valueStr = F("4");
} else if (i == 3 && bpmModulationRange != 0) { } else if (i == 3 && bpmModulationRange != 0) {
valueStr = String(bpmModulationRange * 10); valueStr = String(bpmModulationRange * 10);
} }
//valueStr.toCharArray(valueChar, 16);
if (menuItem == i && insideTab && (menuItemSelected || shiftBtnPushed)) { if (menuItem == i && insideTab && (menuItemSelected || shiftBtnPushed)) {
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueStr.c_str() ); u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueStr.c_str() );
@ -83,43 +78,40 @@ void updateScreen() {
} }
} }
String bpmStr;
if (masterClockMode == 0) { if (masterClockMode == 0) {
bpmStr = String(bpm); valueStr = String(bpm);
} else if (masterClockMode == 1) { } else if (masterClockMode == 1) {
bpmStr = "EXT"; valueStr = F("EXT");
} else if (masterClockMode == 2) { } else if (masterClockMode == 2) {
bpmStr = "MIDI"; valueStr = F("MIDI");
} }
char bpmChar[5];
bpmStr.toCharArray(bpmChar, 5);
leftOffset = 29; leftOffset = 29;
width = 55; width = 55;
if (masterClockMode == 0) { if (masterClockMode == 0) {
if ((!insideTab && !shiftBtnPushed) || (insideTab && menuItem != 0)) { //default view, nothing is selected or editable if ((!insideTab && !shiftBtnPushed) || (insideTab && menuItem != 0)) { //default view, nothing is selected or editable
u8g2.setFont(stkL); u8g2.setFont(stkL);
u8g2.drawButtonUTF8(leftOffset-1, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 3, bpmChar ); u8g2.drawButtonUTF8(leftOffset-1, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
u8g2.setFont(velvetscreen); u8g2.setFont(velvetscreen);
u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 2, "BPM" ); valueStr = F("BPM");
u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 2, valueStr.c_str() );
} else if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0 && (menuItemSelected || shiftBtnPushed))) { //show value as editable } else if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0 && (menuItemSelected || shiftBtnPushed))) { //show value as editable
u8g2.setFont(stkL); u8g2.setFont(stkL);
u8g2.drawButtonUTF8(leftOffset-1, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, bpmChar ); u8g2.drawButtonUTF8(leftOffset-1, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
u8g2.setFont(velvetscreen); u8g2.setFont(velvetscreen);
u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 2, "BPM" ); valueStr = F("BPM");
u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 2, valueStr.c_str() );
} else if (insideTab && menuItem == 0 && !menuItemSelected) { //show as selected menu item } else if (insideTab && menuItem == 0 && !menuItemSelected) { //show as selected menu item
u8g2.setFont(stkL); u8g2.setFont(stkL);
u8g2.drawButtonUTF8(leftOffset-1, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, bpmChar ); u8g2.drawButtonUTF8(leftOffset-1, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
u8g2.setFont(velvetscreen); u8g2.setFont(velvetscreen);
u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 2, "BPM" ); valueStr = F("BPM");
u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 2, valueStr.c_str() );
} }
} }
if (masterClockMode != 0) { //EXT and MIDI if (masterClockMode != 0) { //EXT and MIDI
u8g2.setFont(stkL); u8g2.setFont(stkL);
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 0, bpmChar ); u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 0, valueStr.c_str() );
//u8g2.setFont(velvetscreen);
//u8g2.drawButtonUTF8(leftOffset, 40, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 2, "PPQN" );
} }
} }
@ -131,17 +123,16 @@ void updateScreen() {
leftOffset = 62; leftOffset = 62;
for (byte i = 1; i <= lastMenuItem; i++) { for (byte i = 1; i <= lastMenuItem; i++) {
if (i == 1) { if (i == 1) {
valueStr = "MODE:"; valueStr = F("MODE:");
} else if (i == 2 && channels[displayTab - 1].mode == 0) { } else if (i == 2 && channels[displayTab - 1].mode == 0) {
valueStr = "OFFSET:"; valueStr = F("OFFSET:");
} else if (i == 2 && channels[displayTab - 1].mode == 1) { } else if (i == 2 && channels[displayTab - 1].mode == 1) {
valueStr = "SUBDIV:"; valueStr = F("SUBDIV:");
} else if (i == 2 && channels[displayTab - 1].mode == 2) { } else if (i == 2 && channels[displayTab - 1].mode == 2) {
valueStr = "EDIT PATTERN"; valueStr = F("EDIT PATTERN");
} else if (i == 3) { } else if (i == 3) {
valueStr = "MOD:"; valueStr = F("MOD:");
} }
//valueStr.toCharArray(valueChar, 16);
if (menuItem == i && insideTab) { if (menuItem == i && insideTab) {
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() ); u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() );
} else { } else {
@ -152,11 +143,11 @@ void updateScreen() {
//Values //Values
for (byte i = 1; i <= lastMenuItem; i++) { for (byte i = 1; i <= lastMenuItem; i++) {
if (i == 1 && channels[displayTab - 1].mode == 0) { //Channel mode if (i == 1 && channels[displayTab - 1].mode == 0) { //Channel mode
valueStr = "CLOCK"; valueStr = F("CLOCK");
} else if (i == 1 && channels[displayTab - 1].mode == 1) { } else if (i == 1 && channels[displayTab - 1].mode == 1) {
valueStr = "RAND"; valueStr = F("RAND");
} else if (i == 1 && channels[displayTab - 1].mode == 2) { } else if (i == 1 && channels[displayTab - 1].mode == 2) {
valueStr = "SEQ"; valueStr = F("SEQ");
} else if (i == 2 && channels[displayTab - 1].mode == 0) { //SubDiv and offset } else if (i == 2 && channels[displayTab - 1].mode == 0) { //SubDiv and offset
valueStr = String(channels[displayTab - 1].offset) + "/"; valueStr = String(channels[displayTab - 1].offset) + "/";
int PulsesPerStep; int PulsesPerStep;
@ -171,14 +162,13 @@ void updateScreen() {
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) { } else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
valueStr = "x" + String(abs(subDivs[channels[displayTab - 1].subDiv])); valueStr = "x" + String(abs(subDivs[channels[displayTab - 1].subDiv]));
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 0) { //MOD } else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target == 0) { //MOD
valueStr = "OFF"; valueStr = F("OFF");
} else if (i == 3 && channels[displayTab - 1].CV1Target != 0 && channels[displayTab - 1].CV2Target == 0) { } else if (i == 3 && channels[displayTab - 1].CV1Target != 0 && channels[displayTab - 1].CV2Target == 0) {
valueStr = "CV1"; valueStr = F("CV1");
} else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target != 0) { } else if (i == 3 && channels[displayTab - 1].CV1Target == 0 && channels[displayTab - 1].CV2Target != 0) {
valueStr = "CV2"; valueStr = F("CV2");
} }
//valueStr.toCharArray(valueChar, 16);
if (i == 2 && channels[displayTab - 1].mode == 2) { //EDIT PATTERN thing if (i == 2 && channels[displayTab - 1].mode == 2) { //EDIT PATTERN thing
if (menuItem == i && insideTab) { if (menuItem == i && insideTab) {
u8g2.drawBox(leftOffset + 54, ((i-1) * 11), 11, 11); u8g2.drawBox(leftOffset + 54, ((i-1) * 11), 11, 11);
@ -204,7 +194,6 @@ void updateScreen() {
} else if (channels[displayTab - 1].mode == 2) { } else if (channels[displayTab - 1].mode == 2) {
valueStr = F("PATTERN"); valueStr = F("PATTERN");
} }
//valueStr.toCharArray(valueChar, 16);
if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0)) { if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0)) {
u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() ); u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
} else { } else {
@ -226,7 +215,6 @@ void updateScreen() {
valueStr = "B" + String(channels[displayTab - 1].seqPattern - 7); valueStr = "B" + String(channels[displayTab - 1].seqPattern - 7);
} }
} }
//valueStr.toCharArray(valueChar, 16);
u8g2.setFont(stkL); u8g2.setFont(stkL);
if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0 && (menuItemSelected || shiftBtnPushed))) { if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0 && (menuItemSelected || shiftBtnPushed))) {
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() ); u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
@ -242,35 +230,35 @@ void updateScreen() {
u8g2.setFont(velvetscreen); u8g2.setFont(velvetscreen);
byte yPos = 61; byte yPos = 61;
byte xWidth = 12; byte xWidth = 12;
valueStr = F("w");
if (displayTab == 0) { if (displayTab == 0) {
if (insideTab == true || shiftBtnPushed == true) { if (insideTab == true || shiftBtnPushed == true) {
u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_HCENTER, xWidth-2, 0, 2, "w" ); u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_HCENTER, xWidth-2, 0, 2, valueStr.c_str() );
} else { } else {
u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, xWidth-2, 0, 2, "w" ); u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, xWidth-2, 0, 2, valueStr.c_str() );
} }
} else { } else {
u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW0|U8G2_BTN_HCENTER, xWidth, 0, 2, "w" ); u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW0|U8G2_BTN_HCENTER, xWidth, 0, 2, valueStr.c_str() );
} }
for (int i = 1; i <= 6; i++) { for (int i = 1; i <= 6; i++) {
String tabNameStr = String(i); valueStr = String(i);
char tabNameChar[3];
tabNameStr.toCharArray(tabNameChar, 3);
if (displayTab == i) { if (displayTab == i) {
if (insideTab == true || shiftBtnPushed == true) { if (insideTab == true || shiftBtnPushed == true) {
u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_HCENTER, xWidth-2, 0, 2, tabNameChar); u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_HCENTER, xWidth-2, 0, 2, valueStr.c_str());
} else { } else {
u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, xWidth-2, 0, 2, tabNameChar); u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, xWidth-2, 0, 2, valueStr.c_str());
} }
} else { } else {
u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW0|U8G2_BTN_HCENTER, xWidth, 0, 2, tabNameChar); u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW0|U8G2_BTN_HCENTER, xWidth, 0, 2, valueStr.c_str());
} }
} }
valueStr = F("t");
if (masterClockMode == 0 && !isPlaying) { if (masterClockMode == 0 && !isPlaying) {
u8g2.drawUTF8(121, yPos, "t"); u8g2.drawUTF8(121, yPos, valueStr.c_str() );
} else if (masterClockMode == 0 && isPlaying) { } else if (masterClockMode == 0 && isPlaying) {
u8g2.drawUTF8(122, yPos, "r"); u8g2.drawUTF8(122, yPos, valueStr.c_str() );
} }
} }
@ -278,16 +266,12 @@ void updateScreen() {
else if (displayScreen == 1) { else if (displayScreen == 1) {
u8g2.setFont(velvetscreen); u8g2.setFont(velvetscreen);
byte pattern = channels[displayTab - 1].seqPattern; byte pattern = channels[displayTab - 1].seqPattern;
String patStr;
if (pattern < 8) { if (pattern < 8) {
patStr = "PATTERN A" + String(pattern + 1); valueStr = "PATTERN A" + String(pattern + 1);
} else { } else {
patStr = "PATTERN B" + String(pattern - 7); valueStr = "PATTERN B" + String(pattern - 7);
} }
//patStr = "TEST"; u8g2.drawButtonUTF8(64, 5, U8G2_BTN_BW1|U8G2_BTN_HCENTER, 128, 0, 2, valueStr.c_str() );
char patChar[11];
patStr.toCharArray(patChar, 11);
u8g2.drawButtonUTF8(64, 5, U8G2_BTN_BW1|U8G2_BTN_HCENTER, 128, 0, 2, patChar );
for (byte i = 0; i < 8; i++) { for (byte i = 0; i < 8; i++) {
if (patternToEdit[i]) { if (patternToEdit[i]) {
u8g2.drawUTF8(19 + i*12, 24, "q"); u8g2.drawUTF8(19 + i*12, 24, "q");
@ -311,14 +295,16 @@ void updateScreen() {
} }
if (isRecording) { if (isRecording) {
u8g2.drawButtonUTF8(64, 62, U8G2_BTN_BW1|U8G2_BTN_HCENTER|U8G2_BTN_INV, 50, 0, 2, "RECORDING" ); valueStr = F("RECORDING");
u8g2.drawButtonUTF8(64, 62, U8G2_BTN_BW1|U8G2_BTN_HCENTER|U8G2_BTN_INV, 50, 0, 2, valueStr.c_str() );
} }
} }
//Settings Screen //Settings Screen
else if (displayScreen == 2) { else if (displayScreen == 2) {
u8g2.drawStr(8, 5, "SETTINGS"); valueStr = F("SETTINGS");
u8g2.drawStr(102, 5, version ); u8g2.drawStr(8, 5, valueStr.c_str() );
u8g2.drawStr(102, 5, version.c_str() );
u8g2.drawHLine(0, 8, 128); u8g2.drawHLine(0, 8, 128);
lastMenuItem = 3; lastMenuItem = 3;
byte width = 112; byte width = 112;
@ -331,13 +317,11 @@ void updateScreen() {
valueStr = F("ROTATE SCREEN"); valueStr = F("ROTATE SCREEN");
break; break;
case 2: case 2:
valueStr = F("REVERSE ENCODER");//"REVERSE ENC"; valueStr = F("REVERSE ENCODER");
break;
case 3: case 3:
valueStr = F("FULL RESET"); valueStr = F("FULL RESET");
break; break;
}; };
//valueStr.toCharArray(valueChar, 16);
if (menuItem == i) { if (menuItem == i) {
u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0|U8G2_BTN_INV, width, 2, 3, valueStr.c_str() ); u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0|U8G2_BTN_INV, width, 2, 3, valueStr.c_str() );
} else { } else {
@ -353,7 +337,8 @@ void updateScreen() {
u8g2.drawBox(18,13,93,32); u8g2.drawBox(18,13,93,32);
u8g2.drawBox(18,16,96,30); u8g2.drawBox(18,16,96,30);
u8g2.setDrawColor(1); u8g2.setDrawColor(1);
u8g2.drawButtonUTF8(64, 32, U8G2_BTN_BW1|U8G2_BTN_HCENTER|U8G2_BTN_SHADOW2|U8G2_BTN_INV, 64, 12, 12, "DONE" ); valueStr = F("DONE");
u8g2.drawButtonUTF8(64, 32, U8G2_BTN_BW1|U8G2_BTN_HCENTER|U8G2_BTN_SHADOW2|U8G2_BTN_INV, 64, 12, 12, valueStr.c_str() );
} }
} while ( u8g2.nextPage() ); } while ( u8g2.nextPage() );