Merge branch 'main' into New_Model_DP_666

This commit is contained in:
Leon
2024-05-15 23:40:17 +08:00
5 changed files with 226 additions and 64 deletions
+30 -12
View File
@@ -180,6 +180,7 @@ byte iMSEQ;
byte iMSset;
byte language;
byte licold;
byte longbandpress;
byte memorypos;
byte memoryposold;
byte memoryposstatus;
@@ -518,6 +519,7 @@ void setup() {
scancancel = EEPROM.readByte(EE_BYTE_SCANCANCEL);
scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE);
autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH);
longbandpress = EEPROM.readByte(EE_BYTE_LONGBANDPRESS);
if (spispeed == SPI_SPEED_DEFAULT) {
tft.setSPISpeed(SPI_FREQUENCY / 1000000);
@@ -610,6 +612,9 @@ void setup() {
pinMode(ROTARY_BUTTON, INPUT);
pinMode(ROTARY_PIN_A, INPUT);
pinMode(ROTARY_PIN_B, INPUT);
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, HIGH);
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE);
@@ -1195,8 +1200,6 @@ void WakeToSleep(bool yes) {
} else {
switch (poweroptions) {
case LCD_OFF:
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, LOW);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
MuteScreen(0);
screensavertriggered = false;
@@ -1206,8 +1209,6 @@ void WakeToSleep(bool yes) {
case LCD_BRIGHTNESS_1_PERCENT:
case LCD_BRIGHTNESS_A_QUARTER:
case LCD_BRIGHTNESS_HALF:
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, LOW);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
MuteScreen(0);
screensavertriggered = false;
@@ -1682,6 +1683,19 @@ void BANDBUTTONPress() {
} else {
WakeToSleep(true);
}
while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 2500) counter = millis();
if (counter - counterold > 2499) {
switch (longbandpress) {
case STANDBY:
deepSleep();
break;
case SCREENOFF:
screensavertriggered = true;
MuteScreen(1);
break;
}
}
}
}
}
@@ -2755,24 +2769,24 @@ void DoMemoryPosTune() {
radio.SetFreq(frequency);
break;
case BAND_OIRT:
frequency = presets[memorypos].frequency;
frequency_OIRT = presets[memorypos].frequency;
radio.SetFreq(frequency_OIRT);
break;
case BAND_LW:
frequency = presets[memorypos].frequency;
radio.SetFreq(frequency_LW);
frequency_LW = presets[memorypos].frequency;
radio.SetFreqAM(frequency_LW);
break;
case BAND_MW:
frequency = presets[memorypos].frequency;
radio.SetFreq(frequency_MW);
frequency_MW = presets[memorypos].frequency;
radio.SetFreqAM(frequency_MW);
break;
case BAND_SW:
frequency = presets[memorypos].frequency;
radio.SetFreq(frequency_SW);
frequency_SW = presets[memorypos].frequency;
radio.SetFreqAM(frequency_SW);
break;
#ifdef HAS_AIR_BAND
case BAND_AIR:
frequency = presets[memorypos].frequency;
frequency_AIR = presets[memorypos].frequency;
// radio.SetFreq(frequency_AIR); // todo
radio.SetFreqAM(10700); // todo
break;
@@ -4155,6 +4169,7 @@ void DefaultSettings(byte userhardwaremodel) {
EEPROM.writeByte(EE_BYTE_SCANCANCEL, 0);
EEPROM.writeByte(EE_BYTE_SCANMUTE, 0);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0);
EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0);
for (int i = 0; i < EE_PRESETS_CNT; i++) {
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
@@ -4241,6 +4256,8 @@ void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int colo
void deepSleep() {
analogWrite(SMETERPIN, 0);
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, LOW);
MuteScreen(1);
StoreFrequency();
radio.power(1);
@@ -4385,6 +4402,7 @@ void endMenu() {
EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel);
EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch);
EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, longbandpress);
EEPROM.commit();
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
Serial.end();