i2c control persistance byte
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
#define EE_PRESETS_CNT 99 // When set > 99 change the complete EEPROM adressing!
|
#define EE_PRESETS_CNT 99 // When set > 99 change the complete EEPROM adressing!
|
||||||
#define EE_CHECKBYTE_VALUE 20 // 0 ~ 255,add new entry, change for new value
|
#define EE_CHECKBYTE_VALUE 20 // 0 ~ 255,add new entry, change for new value
|
||||||
#define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped!
|
#define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped!
|
||||||
#define EE_TOTAL_CNT 2287 // Total occupied eeprom bytes, we can take 20K
|
#define EE_TOTAL_CNT 2288 // Total occupied eeprom bytes, we can take 20K
|
||||||
|
|
||||||
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte
|
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte
|
||||||
#define EE_PRESET_BW_START 99 // 99 * 1 byte
|
#define EE_PRESET_BW_START 99 // 99 * 1 byte
|
||||||
@@ -127,6 +127,7 @@
|
|||||||
#define EE_BYTE_CLOCKAMPM 2278
|
#define EE_BYTE_CLOCKAMPM 2278
|
||||||
#define EE_UINT16_LOGCOUNTER 2279
|
#define EE_UINT16_LOGCOUNTER 2279
|
||||||
#define EE_UINT16_PICTLOCK 2283
|
#define EE_UINT16_PICTLOCK 2283
|
||||||
|
#define EE_BYTE_CONTROLMODE 2285
|
||||||
// End of EEPROM index defines
|
// End of EEPROM index defines
|
||||||
|
|
||||||
void StoreFrequency();
|
void StoreFrequency();
|
||||||
|
|||||||
+7
-5
@@ -997,10 +997,8 @@ void total_pc_control() {
|
|||||||
} break;
|
} break;
|
||||||
case 6: { // Change baud
|
case 6: { // Change baud
|
||||||
if(len < 5) break;
|
if(len < 5) break;
|
||||||
uint32_t clock = ((uint32_t)data[1] << 24) |
|
uint32_t clock = ((uint32_t)data[1] << 24) | ((uint32_t)data[2] << 16) |
|
||||||
((uint32_t)data[2] << 16) |
|
((uint32_t)data[3] << 8) | ((uint32_t)data[4]);
|
||||||
((uint32_t)data[3] << 8) |
|
|
||||||
((uint32_t)data[4]);
|
|
||||||
Serial.write(1);
|
Serial.write(1);
|
||||||
Serial.write(6);
|
Serial.write(6);
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
@@ -1020,10 +1018,14 @@ void total_pc_control() {
|
|||||||
Serial.write(8);
|
Serial.write(8);
|
||||||
for(uint16_t i = 0; i < data[3]; i++) Serial.write(EEPROM.read(address + i));
|
for(uint16_t i = 0; i < data[3]; i++) Serial.write(EEPROM.read(address + i));
|
||||||
} break;
|
} break;
|
||||||
|
case 0xfe: { // Get EEPROM address for starting control mode on boot
|
||||||
|
Serial.write(2);
|
||||||
|
Serial.write((uint8_t)(EE_BYTE_CONTROLMODE >> 8));
|
||||||
|
Serial.write(EE_BYTE_CONTROLMODE & 0xff);
|
||||||
|
} break;
|
||||||
case 0xff: { // Another wake command
|
case 0xff: { // Another wake command
|
||||||
Serial.write(1);
|
Serial.write(1);
|
||||||
Serial.write(0xff);
|
Serial.write(0xff);
|
||||||
Serial.flush(true);
|
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
+8
-1
@@ -198,6 +198,10 @@ void setup() {
|
|||||||
|
|
||||||
loadData();
|
loadData();
|
||||||
|
|
||||||
|
pinMode(MODEBUTTON, INPUT);
|
||||||
|
if(i2c_pc_control && digitalRead(MODEBUTTON) == HIGH) return;
|
||||||
|
else i2c_pc_control = false;
|
||||||
|
|
||||||
if (spispeed == 0) setAutoSpeedSPI();
|
if (spispeed == 0) setAutoSpeedSPI();
|
||||||
else tft.setSPISpeed(spispeed);
|
else tft.setSPISpeed(spispeed);
|
||||||
|
|
||||||
@@ -265,7 +269,6 @@ void setup() {
|
|||||||
tft.invertDisplay(!invertdisplay);
|
tft.invertDisplay(!invertdisplay);
|
||||||
|
|
||||||
pinMode(BANDBUTTON, INPUT);
|
pinMode(BANDBUTTON, INPUT);
|
||||||
pinMode(MODEBUTTON, INPUT);
|
|
||||||
pinMode(BWBUTTON, INPUT);
|
pinMode(BWBUTTON, INPUT);
|
||||||
pinMode(ROTARY_BUTTON, INPUT);
|
pinMode(ROTARY_BUTTON, INPUT);
|
||||||
pinMode(ROTARY_PIN_A, INPUT);
|
pinMode(ROTARY_PIN_A, INPUT);
|
||||||
@@ -1075,6 +1078,10 @@ void loop() {
|
|||||||
if(i2c_pc_control) {
|
if(i2c_pc_control) {
|
||||||
total_pc_control();
|
total_pc_control();
|
||||||
if(i2c_pc_control) return;
|
if(i2c_pc_control) return;
|
||||||
|
if(EEPROM.readByte(EE_BYTE_CONTROLMODE)) {
|
||||||
|
saveData();
|
||||||
|
esp_restart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleWiFi();
|
handleWiFi();
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ void saveData() {
|
|||||||
EEPROM.writeByte(EE_BYTE_AUTODST, autoDST);
|
EEPROM.writeByte(EE_BYTE_AUTODST, autoDST);
|
||||||
EEPROM.writeByte(EE_BYTE_CLOCKAMPM, clockampm);
|
EEPROM.writeByte(EE_BYTE_CLOCKAMPM, clockampm);
|
||||||
EEPROM.writeUInt(EE_UINT16_PICTLOCK, radio.rds.PICTlock);
|
EEPROM.writeUInt(EE_UINT16_PICTLOCK, radio.rds.PICTlock);
|
||||||
|
EEPROM.writeByte(EE_BYTE_CONTROLMODE, 0); // Always 0
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +240,7 @@ void loadData() {
|
|||||||
clockampm = EEPROM.readByte(EE_BYTE_CLOCKAMPM);
|
clockampm = EEPROM.readByte(EE_BYTE_CLOCKAMPM);
|
||||||
logcounter = EEPROM.readUInt(EE_UINT16_LOGCOUNTER);
|
logcounter = EEPROM.readUInt(EE_UINT16_LOGCOUNTER);
|
||||||
radio.rds.PICTlock = EEPROM.readUInt(EE_UINT16_PICTLOCK);
|
radio.rds.PICTlock = EEPROM.readUInt(EE_UINT16_PICTLOCK);
|
||||||
|
i2c_pc_control = i2c_pc_control_init = EEPROM.readByte(EE_BYTE_CONTROLMODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefaultSettings() {
|
void DefaultSettings() {
|
||||||
@@ -345,6 +347,7 @@ void DefaultSettings() {
|
|||||||
EEPROM.writeByte(EE_BYTE_AUTODST, 1);
|
EEPROM.writeByte(EE_BYTE_AUTODST, 1);
|
||||||
EEPROM.writeByte(EE_BYTE_CLOCKAMPM, 0);
|
EEPROM.writeByte(EE_BYTE_CLOCKAMPM, 0);
|
||||||
EEPROM.writeUInt(EE_UINT16_PICTLOCK, 0);
|
EEPROM.writeUInt(EE_UINT16_PICTLOCK, 0);
|
||||||
|
EEPROM.writeByte(EE_BYTE_CONTROLMODE, 0);
|
||||||
|
|
||||||
EEPROM.writeByte(EE_BYTE_SPISPEED, 0);
|
EEPROM.writeByte(EE_BYTE_SPISPEED, 0);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user