Гуру
Регистрация: 16.04.2014
Возраст: 41
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
возникла необходимость контролировать значения, которые прописаны в памяти процессора.
По этому поводу накатал программку, которая читает данные из памяти, декодирует и кидает в ком порт.
Порядок такой:
1 - залили скетч в блок питания ( или в голую ардуину, для теста)
2 - открыли ком порт, выставили скорость 115200
3 - читаем.
Если хотим изменить значения или полностью стереть память - меняем в начале циферку соответственно описанию.
4 - заливаем прошивку для блока питания, например m32.
Если что непонятно - спрашивайте. Есть желание записать видео, но пока нет времени.
PHP код:
const byte rejim_raboty_control_lub_zapis = 0; // определяем, что мы хотим делать этим скетчем.
// 0 - только читаем.
// 1 - пишем значения в еепром процессора.
// 2 - обнуляем память процессора ( как если бы поставили новую ардуину)
//Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
// Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
// Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
// Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
//const byte brac_nastrojki_iz_EEPROM = 0; // если вы хотите СОХРАНИТЬ свои настройки в энергонезависимую память(еепром), тогда ставим 1, 0 - берём значения из скетча, игнорируя память ( кроме калибровки), 2 - берем значения из памяти eeprom,(если память пустая, берем значения из скетча.)
byte reset_HUB_on_power_on = 1; // передёргивать ли хаб при каждом включении зажигания, для решения проблемы с определением изикапа (STK1160) 1 - после ВКЛ АСС включить хаб, выключить на 0,5с и включить опять. 0 - просто включить хаб. При 1 могут быть проблемы с определением флешки в хабе, отгда поставить 0.
byte power_off_HUB_on_starting = 1; // выключать ли питание на хаб при старте авто ( 1- да, выключать) (0 - не выключать)
byte power_off_OTG_on_starting = 1; // выключать ли массу на OTG при старте авто ( 1- да, выключать) (0 - не выключать)
byte HALL_as_power_Switch = 0; // 0 - используем ДХ как обычно. 1 - вместо ДХ подключаем кнопку питания планшета. Если подключено как КНОПКА, то задержка перед нажатием "кнопки" после включения АСС это SLEEP_timer_pri_vkl_ACC, а после вЫключения SLEEP_timer_pri_vykl_ACC. Удержание нажатия = vremia_uderjanija_najatoj_knopki_POWER. ДХ = Датчик Холла.
unsigned long vremia_uderjanija_najatoj_knopki_POWER = 250; //если HALL_as_power_Switch = 1, то время "зажатия" (нажимания) кнопки питания планшета устанавливаем тут. 500 = 0,5с.
//НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________
// напряжения должны быть записаны ТОЛЬКО в XX.X формате, например 11.0
float Uperezariadki = 15.5; // напряжение, выше которого будет считаться, что идёт перезарядка аккумулятора авто.
float UrabotyREM = 11.8; // напряжение, выше которого будет работать усилитель звука, если акб не садился.
float UnevykluczeniaREM = 13.7; // напряжение, когда машина считается заведённой. Тогда, если завели машину, ВКЛЮЧАЕМ REM, и постоянно обнуляем обратный отсчет вырубания РЕМ.
float Uakb_Kogda_ACC_vYkluczeno = 11.9; // напряжение, ниже которого АКБ авто будет считаться разряженным (севшим) при вЫключенном АСС
float Uakb_Kogda_ACC_vkluczeno = 11.1; // напряжение, ниже которого АКБ авто будет считаться разряженным (севшим) при вКлюченном АСС
float UaccONorOFF = 10.1; // напряжение порога сработки асс. Т.е. если на пин блока питания "вход АСС" подать ниже UaccONorOFF (11,1), то зажигание будет считаться выключенным.
//КОНЕЦ НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________НАСТРОЙКИ Пороговых напряжений!!!!!!!!_________
/*счётчики времени*/
//НАСТРОЙКИ ТАЙМИНГОВ!!!______НАСТРОЙКИ ТАЙМИНГОВ!!!______НАСТРОЙКИ ТАЙМИНГОВ!!!______НАСТРОЙКИ ТАЙМИНГОВ!!!______НАСТРОЙКИ ТАЙМИНГОВ!!!______НАСТРОЙКИ ТАЙМИНГОВ!!! НАСТРОЙКИ ТАЙМИНГОВ!!! НАСТРОЙКИ ТАЙМИНГОВ!!! НАСТРОЙКИ ТАЙМИНГОВ!!! НАСТРОЙКИ ТАЙМИНГОВ!!!
unsigned long timeUntilBATOff = 345600000; // время до выключения питания на батарею планшета после выключения зажигания., считаем ОТ момента выключения зажигания. если прошло 48 часов, как выключили ACC // пауза (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
unsigned long timeUntilALLOff = 172800000 + timeUntilBATOff; // время до полного выключение блока, после выключения зажигания (ACC)и уже после того, как выключится питание на батарею планшета ) (2суток = 172800000)) (4суток = 345600000)
unsigned long timeBeforeRemOff = 1800000; // 1800000=30мин. Время, оставшееся до отключения выхода REM после включения зажигания и незаводки машины. ( то есть сколько времени будет включён усилитель звука, если заглушить машину и просто слушать музыку, при нормальном АКБ)
unsigned long timeAfterACC_starting = 7000; // не может быть меньше REM_timer_pri_vykl_ACC! //задержка перед началом процедуры выключения зажигания во время кручения стартером
unsigned long timeAfterACC_accOFF = 2000; // не может быть меньше REM_timer_pri_vykl_ACC! //задержка перед началом процедуры выключения зажигания во время обычного выключения зажигания
unsigned long timeWhileAkbLow = 40000; // 40000 время, через которое начнётся полное выключение блока когда напряжение на АКБ очень низкое. /* если севший аккумулятор //через 40с вЫключаем питание на батарею планшета и вырубаем сам БП.*/
unsigned long pauseTimeHALL = 140000; // Для первого включения планшета. Раньше этого времени экран не будет тухнуть! Время паузы перед морганием-тушением экрана (для датчика холла)(равен времени загрузки планшета плюс секунд 10-20)= 2мин
unsigned long vremia_obnovlenia_displeya = 250; // Время, через которое будет обновляться информация на дисплей I2C (время обновления I2C дисплея)
//тут настраиваем паузу при вКлючении зажигания ( АСС) и по истечении этого времени активируем/деактивируем
//соответствующий пин блока питания (время независимо друг от друга)
unsigned long PlanshBAT_timer_pri_vkl_ACC = 1100;// пауза после включения ACC перед включением питания на батарею планшета
unsigned long FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC = 1400;// пауза после включения ACC перед включением +5V (POGO(USB) выхода для пина зарядки планшета (+5В пого или ЮСБ)
unsigned long OTG_timer_pri_vkl_ACC = 50;// пауза после включения ACC перед включением минуса на OTG ( 4й контакт ЮСБ разъема на планшете) (включается определение ЮСБ перифирии планшетом.)
unsigned long HUB_timer_pri_vkl_ACC = 2100;// пауза после включения ACC перед подачей питания на хаб. Значение должно быть больше либо равно FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC.
unsigned long REGISTRATOR_timer_pri_vkl_ACC = 2500;// пауза после включения ACC перед включением питания +12В на видеорегистратор
unsigned long REM_timer_pri_vkl_ACC = 2500;// пауза после включения ACC перед включением питания +12В на REM (включение усилителя звука)
unsigned long SLEEP_timer_pri_vkl_ACC = 3000; // пауза после включения ACC перед включением экрана планшета (масса на Датчик Холла)
unsigned long I_dva_C_szina_ON_time = 150; //Время, через которое I2C шина включится после вКлючения зажигания - начнётся передача по шине I2C.
//тут настраиваем паузу при вЫключении зажигания ( АСС) и по истечении этого времени активируем/деактивируем
//соответствующий пин блока питания (время независимо друг от друга)
unsigned long OTG_timer_pri_vykl_ACC = 2500; // пауза после вЫключения ACC перед вЫключением минуса на OTG ( 4й контакт ЮСБ разъема на планшете) (вЫключается определение ЮСБ перифирии планшетом.)
unsigned long FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC = 5000; // пауза после вЫключения ACC перед вЫключением +5V (POGO(USB) выхода для пина зарядки планшета (+5В пого или ЮСБ)
unsigned long HUB_timer_pri_vykl_ACC = 5000; // пауза после вЫключения ACC перед убиранием питания с хаба. Значение должно быть меньше либо равно FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC.
unsigned long SLEEP_timer_pri_vykl_ACC = 0; // пауза после вЫключения ACC перед вЫключением экрана планшета (масса на Датчик Холла)
unsigned long REM_timer_pri_vykl_ACC = 1000;// не может быть больше timeAfterACC_accOFF и timeAfterACC_starting! Пауза после вЫключения ACC перед вЫключением питания +12В на REM (вЫключение усилителя звука), тут 1000 это на сколько раньше выключать выход REM перед остальными выключениями
unsigned long lcd_noBacklight_timer_pri_vykl_ACC = 17000; // 7000 пауза после вЫключения ACC перед убиранием подсветки I2C LSD дисплея (1602)
unsigned long I_dva_C_szina_OFF_time = lcd_noBacklight_timer_pri_vykl_ACC + 3000; //Время, которое I2C шина работает после вЫключения зажигания, потом - закончится передача по шине I2C.
unsigned long rezerv2 =0;
unsigned long rezerv3 =0;
unsigned long rezerv4 =0;
float rezerv5 =0;
float rezerv6 =0;
float rezerv7 =01.01;
//конец настроек таймингов.__________________________________________________________________________________________
//К О Н Е Ц Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
// К О Н Е Ц Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
// К О Н Е Ц Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
// К О Н Е Ц Н А С Т Р О Й К И П О Л Ь З О В А Т Е Л Я П О Д С В О И П О Т Р Е Б Н О С Т И
#include <EEPROM.h> // Импортируем библиотеку
byte kalibrovkaACC = EEPROM.read(0); // значение для калибровки для делителя АСС
byte kalibrovkaAKB = EEPROM.read(1); // значение для калибровки для делителя АКБ
const int nachalnyj_address_dannyh_polzovatelja_v_eeprom = 2; // Переменная для хранения начального адреса еепром
struct myStruct_Znachenija_peremennyh_i_timingov { // Создаем пользовательскую структуру
byte reset_HUB_on_power_on; // передёргивать ли хаб при каждом включении зажигания, для решения проблемы с определением изикапа (STK1160) 1 - после ВКЛ АСС включить хаб, выключить на 0,5с и включить опять. 0 - просто включить хаб.
byte power_off_HUB_on_starting ; // выключать ли питание на хаб при старте авто ( 1- да, выключать)
byte power_off_OTG_on_starting; // выключать ли массу на OTG при старте авто ( 1- да, выключать)
byte HALL_as_power_Switch ; // 0 - используем ДХ как обычно. 1 - вместо ДХ подключаем кнопку питания планшета. Если подключено как КНОПКА, то задержка перед нажатием "кнопки" после включения АСС это SLEEP_timer_pri_vkl_ACC, а после вЫключения SLEEP_timer_pri_vykl_ACC. Удержание нажатия = 0,5с.
float Uperezariadki ; // напряжение, выше которого будет считаться, что идёт перезарядка аккумулятора авто.
float UrabotyREM ; // напряжение, выше которого будет работать усилитель звука, если акб не садился.
float UnevykluczeniaREM ; // напряжение, когда машина считается заведённой. Тогда, если завели машину, ВКЛЮЧАЕМ REM, и постоянно обнуляем обратный отсчет вырубания РЕМ.
float Uakb_Kogda_ACC_vYkluczeno ; // напряжение, ниже которого АКБ авто будет считаться разряженным (севшим) при вЫключенном АСС
float Uakb_Kogda_ACC_vkluczeno ; // напряжение, ниже которого АКБ авто будет считаться разряженным (севшим) при вКлюченном АСС
float UaccONorOFF ; // напряжение порога сработки асс. Т.е. если на пин блока питания "вход АСС" подать ниже UaccONorOFF (11,1), то зажигание будет считаться выключенным.
unsigned long timeUntilBATOff; // 4 байта
unsigned long timeUntilALLOff; // 4 байта
unsigned long timeBeforeRemOff; // 4 байта
unsigned long timeAfterACC_starting; // 4 байта
unsigned long timeAfterACC_accOFF ; // 4 байта
unsigned long timeWhileAkbLow ; // 4 байта
unsigned long pauseTimeHALL ; // 4 байта
unsigned long vremia_obnovlenia_displeya ; // 4 байта
unsigned long PlanshBAT_timer_pri_vkl_ACC; // 4 байта
unsigned long FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC; // 4 байта
unsigned long OTG_timer_pri_vkl_ACC; // 4 байта
unsigned long HUB_timer_pri_vkl_ACC; // 4 байта
unsigned long REGISTRATOR_timer_pri_vkl_ACC; // 4 байта
unsigned long REM_timer_pri_vkl_ACC; // 4 байта
unsigned long SLEEP_timer_pri_vkl_ACC; // 4 байта
unsigned long I_dva_C_szina_ON_time; // 4 байта
unsigned long OTG_timer_pri_vykl_ACC ; // 4 байта
unsigned long FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC ;// 4 байта
unsigned long HUB_timer_pri_vykl_ACC; // 4 байта
unsigned long SLEEP_timer_pri_vykl_ACC; // 4 байта
unsigned long REM_timer_pri_vykl_ACC ; // 4 байта
unsigned long lcd_noBacklight_timer_pri_vykl_ACC ; // 4 байта
unsigned long I_dva_C_szina_OFF_time ; // 4 байта
unsigned long vremia_uderjanija_najatoj_knopki_POWER ;
unsigned long rezerv2 ;
unsigned long rezerv3 ;
unsigned long rezerv4 ;
float rezerv5 ;
float rezerv6 ;
float rezerv7 ;
};
int RAW_address_eeprom = 0; // Переменная для хранения адреса для вывода сырых значений еепром
byte RAW_value_eeprom; // Переменная для хранения значения для вывода сырых значений еепром
void setup() {
Serial.begin(115200);
// Serial.flush();
while (Serial.available())
Serial.read();
delay(50);
myStruct_Znachenija_peremennyh_i_timingov znachenija_polzovatelia[] = // Создаем массив объектов пользовательской структуры из значений, прописанных в скетче в настройках пользователя
{//myStruct_Znachenija_peremennyh_i_timingov znachenija_polzovatelia
{// Создаем массив объектов
reset_HUB_on_power_on , // передёргивать ли хаб при каждом включении зажигания, для решения проблемы с определением изикапа (STK1160) 1 - после ВКЛ АСС включить хаб, выключить на 0,5с и включить опять. 0 - просто включить хаб.
power_off_HUB_on_starting , // выключать ли питание на хаб при старте авто ( 1- да, выключать)
power_off_OTG_on_starting , // выключать ли массу на OTG при старте авто ( 1- да, выключать)
HALL_as_power_Switch , // 0 - используем ДХ как обычно. 1 - вместо ДХ подключаем кнопку питания планшета. Если подключено как КНОПКА, то задержка перед нажатием "кнопки" после включения АСС это SLEEP_timer_pri_vkl_ACC, а после вЫключения SLEEP_timer_pri_vykl_ACC. Удержание нажатия = 0,5с.
Uperezariadki, // напряжение, выше которого будет считаться, что идёт перезарядка аккумулятора авто.
UrabotyREM, // напряжение, выше которого будет работать усилитель звука, если акб не садился.
UnevykluczeniaREM, // напряжение, когда машина считается заведённой. Тогда, если завели машину, ВКЛЮЧАЕМ REM, и постоянно обнуляем обратный отсчет вырубания РЕМ.
Uakb_Kogda_ACC_vYkluczeno, // напряжение, ниже которого АКБ авто будет считаться разряженным (севшим) при вЫключенном АСС
Uakb_Kogda_ACC_vkluczeno , // напряжение, ниже которого АКБ авто будет считаться разряженным (севшим) при вКлюченном АСС
UaccONorOFF, // напряжение порога сработки асс. Т.е. если на пин блока питания "вход АСС" подать ниже UaccONorOFF (11,1), то зажигание будет считаться выключенным.
timeUntilBATOff, // время до выключения питания на батарею планшета после выключения зажигания., считаем ОТ момента выключения зажигания. если прошло 48 часов, как выключили ACC // пауза (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
timeUntilALLOff , // время до полного выключение блока, после выключения зажигания (ACC)и уже после того, как выключится питание на батарею планшета ) (2суток = 172800000)) (4суток = 345600000)
timeBeforeRemOff , // 1800000=30мин. Время, оставшееся до отключения выхода REM после включения зажигания и незаводки машины. ( то есть сколько времени будет включён усилитель звука, если заглушить машину и просто слушать музыку, при нормальном АКБ)
timeAfterACC_starting , // не может быть меньше REM_timer_pri_vykl_ACC! //задержка перед началом процедуры выключения зажигания во время кручения стартером
timeAfterACC_accOFF , // не может быть меньше REM_timer_pri_vykl_ACC! //задержка перед началом процедуры выключения зажигания во время обычного выключения зажигания
timeWhileAkbLow, // 40000 время, через которое начнётся полное выключение блока когда напряжение на АКБ очень низкое. /* если севший аккумулятор //через 40с вЫключаем питание на батарею планшета и вырубаем сам БП.*/
pauseTimeHALL , // Для первого включения планшета. Раньше этого времени экран не будет тухнуть! Время паузы перед морганием-тушением экрана (для датчика холла)(равен времени загрузки планшета плюс секунд 10-20)= 2мин
vremia_obnovlenia_displeya, // Время, через которое будет обновляться информация на дисплей I2C (время обновления I2C дисплея)
PlanshBAT_timer_pri_vkl_ACC , // пауза после включения ACC перед включением питания на батарею планшета
FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC, // пауза после включения ACC перед включением +5V (POGO(USB) выхода для пина зарядки планшета (+5В пого или ЮСБ)
OTG_timer_pri_vkl_ACC , // пауза после включения ACC перед включением минуса на OTG ( 4й контакт ЮСБ разъема на планшете) (включается определение ЮСБ перифирии планшетом.)
HUB_timer_pri_vkl_ACC , // пауза после включения ACC перед подачей питания на хаб. Значение должно быть больше либо равно FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC.
REGISTRATOR_timer_pri_vkl_ACC, // пауза после включения ACC перед включением питания +12В на видеорегистратор
REM_timer_pri_vkl_ACC , // пауза после включения ACC перед включением питания +12В на REM (включение усилителя звука)
SLEEP_timer_pri_vkl_ACC, // пауза после включения ACC перед включением экрана планшета (масса на Датчик Холла)
I_dva_C_szina_ON_time , //Время, через которое I2C шина включится после вКлючения зажигания - начнётся передача по шине I2C.
OTG_timer_pri_vykl_ACC , // пауза после вЫключения ACC перед вЫключением минуса на OTG ( 4й контакт ЮСБ разъема на планшете) (вЫключается определение ЮСБ перифирии планшетом.)
FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC , // пауза после вЫключения ACC перед вЫключением +5V (POGO(USB) выхода для пина зарядки планшета (+5В пого или ЮСБ)
HUB_timer_pri_vykl_ACC , // пауза после вЫключения ACC перед убиранием питания с хаба. Значение должно быть меньше либо равно FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC.
SLEEP_timer_pri_vykl_ACC , // пауза после вЫключения ACC перед вЫключением экрана планшета (масса на Датчик Холла)
REM_timer_pri_vykl_ACC , // не может быть больше timeAfterACC_accOFF и timeAfterACC_starting! Пауза после вЫключения ACC перед вЫключением питания +12В на REM (вЫключение усилителя звука), тут 1000 это на сколько раньше выключать выход REM перед остальными выключениями
lcd_noBacklight_timer_pri_vykl_ACC, // 7000 пауза после вЫключения ACC перед убиранием подсветки I2C LSD дисплея (1602)
I_dva_C_szina_OFF_time, //Время, которое I2C шина работает после вЫключения зажигания, потом - закончится передача по шине I2C.
vremia_uderjanija_najatoj_knopki_POWER,
rezerv2,
rezerv3,
rezerv4,
rezerv5,
rezerv6,
rezerv7
}// конец Создаем массив объектов
};//myStruct_Znachenija_peremennyh_i_timingov znachenija_polzovatelia
if (rejim_raboty_control_lub_zapis == 2)// 2 - обнуляем память процессора ( как если бы поставили новую ардуину)
{// 2 - обнуляем память процессора
RAW_address_eeprom =0;
while (RAW_address_eeprom < EEPROM.length()) { // Перебираем адреса, до тех пор, пока не перебирем все
EEPROM.update(RAW_address_eeprom, 255); //
//Serial.println("RAW_address_eeprom: "+String(RAW_address_eeprom)+", RAW_value_eeprom: "+String(RAW_value_eeprom)); // Выводим полученное значение в монитор
RAW_address_eeprom++; // Наращиваем адрес
}
delay(50);
Serial.println (" ");
Serial.println (" rejim_raboty_control_lub_zapis == 2");
Serial.println (" oczistili EEPROM processora");
Serial.println (" teperb proczitaem czto zapisano v pamiaci");
Serial.println (" ");
delay(50);
}// 2 - обнуляем память процессора
// Записываем все данные в EEPROM.
if (rejim_raboty_control_lub_zapis == 1)// 1 - пишем значения в еепром процессора.
{// 1 - пишем значения в еепром процессора.
EEPROM.update(0,kalibrovkaACC);
EEPROM.update(1,kalibrovkaAKB);
EEPROM.put(nachalnyj_address_dannyh_polzovatelja_v_eeprom, znachenija_polzovatelia[0]); // ПИШЕМ данные в EEPROM из созданной переменной
delay(50);
Serial.println (" ");
Serial.println (" rejim_raboty_control_lub_zapis == 1");
Serial.println (" propisali znaczenia iz sketcha v EEPROM processora");
Serial.println (" teperb proczitaem czto zapisano v pamiaci");
Serial.println (" ");
delay(50);
}// 1 - пишем значения в еепром процессора.
// Теперь данные можно считать
myStruct_Znachenija_peremennyh_i_timingov Schitano; // В переменную Schitano будем считывать данные из EEPROM
// for (int i = 0; i < 1; i++) {
delay(50);
EEPROM.get(nachalnyj_address_dannyh_polzovatelja_v_eeprom, Schitano); // Считываем данные из EEPROM в созданную переменную
delay(50);
// выводим в ком порт значения калибровокделителей асс и акб
Serial.flush();
while (Serial.available())
Serial.read();
Serial.println (" ");
Serial.println (" "); Serial.println (" "); Serial.println (" ");
Serial.print (" kalibrovkaACC = ");
Serial.println (kalibrovkaACC);
Serial.print (" kalibrovkaAKB = ");
Serial.println (kalibrovkaAKB);
// выводим в ком порт значения пользователя, которые прописаны в еепром
Serial.print (" reset_HUB_on_power_on = ");
Serial.println (Schitano.reset_HUB_on_power_on);
Serial.print (" power_off_HUB_on_starting = ");
Serial.println (Schitano.power_off_HUB_on_starting);
Serial.print (" power_off_OTG_on_starting = ");
Serial.println (Schitano.power_off_OTG_on_starting);
Serial.print (" HALL_as_power_Switch = ");
Serial.println (Schitano.HALL_as_power_Switch);
Serial.print ("Uperezariadki = ");
Serial.println (Schitano.Uperezariadki);
Serial.print ("UrabotyREM = ");
Serial.println (Schitano.UrabotyREM);
Serial.print ("UnevykluczeniaREM = ");
Serial.println (Schitano.UnevykluczeniaREM);
Serial.print ("Uakb_Kogda_ACC_vYkluczeno = ");
Serial.println (Schitano.Uakb_Kogda_ACC_vYkluczeno);
Serial.print ("Uakb_Kogda_ACC_vkluczeno = ");
Serial.println (Schitano.Uakb_Kogda_ACC_vkluczeno);
Serial.print ("UaccONorOFF = ");
Serial.println (Schitano.UaccONorOFF);
Serial.print ("timeUntilBATOff = ");
Serial.println (Schitano.timeUntilBATOff);
Serial.print ("timeUntilALLOff = ");
Serial.println (Schitano.timeUntilALLOff);
Serial.print ("timeBeforeRemOff = ");
Serial.println (Schitano.timeBeforeRemOff);
Serial.print ("timeAfterACC_starting = ");
Serial.println (Schitano.timeAfterACC_starting);
Serial.print ("timeAfterACC_accOFF = ");
Serial.println (Schitano.timeAfterACC_accOFF);
Serial.print ("timeWhileAkbLow = ");
Serial.println (Schitano.timeWhileAkbLow);
Serial.print ("pauseTimeHALL = ");
Serial.println (Schitano.pauseTimeHALL);
Serial.print ("vremia_obnovlenia_displeya = ");
Serial.println (Schitano.vremia_obnovlenia_displeya);
Serial.print ("PlanshBAT_timer_pri_vkl_ACC = ");
Serial.println (Schitano.PlanshBAT_timer_pri_vkl_ACC);
Serial.print ("FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC = ");
Serial.println (Schitano.FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vkl_ACC);
Serial.print ("OTG_timer_pri_vkl_ACC = ");
Serial.println (Schitano.OTG_timer_pri_vkl_ACC);
Serial.print ("HUB_timer_pri_vkl_ACC = ");
Serial.println (Schitano.HUB_timer_pri_vkl_ACC);
Serial.print ("REGISTRATOR_timer_pri_vkl_ACC = ");
Serial.println (Schitano.REGISTRATOR_timer_pri_vkl_ACC);
Serial.print ("REM_timer_pri_vkl_ACC = ");
Serial.println (Schitano.REM_timer_pri_vkl_ACC);
Serial.print ("SLEEP_timer_pri_vkl_ACC = ");
Serial.println (Schitano.SLEEP_timer_pri_vkl_ACC);
Serial.print ("I_dva_C_szina_ON_time = ");
Serial.println (Schitano.I_dva_C_szina_ON_time);
Serial.print ("OTG_timer_pri_vykl_ACC = ");
Serial.println (Schitano.OTG_timer_pri_vykl_ACC);
Serial.print ("FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC = ");
Serial.println (Schitano.FIVE_Volt_OUT_na_POGO_or_USB_timer_pri_vykl_ACC);
Serial.print ("HUB_timer_pri_vykl_ACC = ");
Serial.println (Schitano.HUB_timer_pri_vykl_ACC);
Serial.print ("SLEEP_timer_pri_vykl_ACC = ");
Serial.println (Schitano.SLEEP_timer_pri_vykl_ACC);
Serial.print ("REM_timer_pri_vykl_ACC = ");
Serial.println (Schitano.REM_timer_pri_vykl_ACC);
Serial.print ("lcd_noBacklight_timer_pri_vykl_ACC = ");
Serial.println (Schitano.lcd_noBacklight_timer_pri_vykl_ACC);
Serial.print ("I_dva_C_szina_OFF_time = ");
Serial.println (Schitano.I_dva_C_szina_OFF_time);
Serial.print ("vremia_uderjanija_najatoj_knopki_POWER = ");
Serial.println (Schitano.vremia_uderjanija_najatoj_knopki_POWER);
Serial.print ("rezerv2 = ");
Serial.println (Schitano.rezerv2);
Serial.print ("rezerv3 = ");
Serial.println (Schitano.rezerv3);
Serial.print ("rezerv4 = ");
Serial.println (Schitano.rezerv4);
Serial.print ("rezerv5 = ");
Serial.println (Schitano.rezerv5);
Serial.print ("rezerv6 = ");
Serial.println (Schitano.rezerv6);
Serial.print ("rezerv7 = ");
Serial.println (Schitano.rezerv7);
delay (3000); // задержка
// теперь выводим сырые данные еепром
Serial.println (" ");
Serial.println (" ");
Serial.println ("teper' wywodim syryje dannyje eeprom");
Serial.println (" ");
RAW_address_eeprom = 0;
while (RAW_address_eeprom < EEPROM.length()) { // Перебираем адреса, до тех пор, пока не перебирем все
RAW_value_eeprom = EEPROM.read(RAW_address_eeprom); // Считываем значение байта
Serial.println("RAW_address_eeprom: "+String(RAW_address_eeprom)+", RAW_value_eeprom: "+String(RAW_value_eeprom)); // Выводим полученное значение в монитор
RAW_address_eeprom++; // Наращиваем адрес
}
Serial.println (" ");
Serial.println (" ");
Serial.println (" ");
while (Serial.available())
Serial.read();
}
void loop() {}
//vers 1.0 270518_2009
|