EEPROM

fsdb
Offline
Зарегистрирован: 24.10.2015

Ребята, никогда не думал что на этом застряну

Я пытаюсь читать и писать в EEPROM esp8266. ниже код работает, но мне не известно заранее сколько читать нужно. Можно конечно определять по символу конца строки, но блин почему когда я пытаюсь использовать put и get в EEPROM какая то ерунда.
может особенность какая то есть? не хочу щелкой полы мыть. хочу put и get но не получается.

EEPROM.begin(512);
ssid="router";
   for (int i = 0; i < 6; ++i)
            {
              EEPROM.write(i, ssid[i]);
              Serial.print("Wrote: ");
              Serial.println(ssid[i]); 
            }
EEPROM.commit();

            
  for (int i = 0; i < 7; ++i)  { ssid += char(EEPROM.read(i));  }
  

 

fsdb
Offline
Зарегистрирован: 24.10.2015

так пытаюсь, а получаю так: https://yadi.sk/i/7j-VA7Zs2G2UmA


ssid="router";

EEPROM.put(0,ssid);            
EEPROM.commit();

ssid="";
            
  
EEPROM.get(0, ssid);

 

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Исходники EEPROM смотрели? Сдается мне, что функции не нравится структура с неизвестной длиной.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Да, уважаемый, Вы сами себя обхитрили. Почему Вы решили, что put  и get будут за Вас определять конец строки? В описании этих функций написано: Тип данных или структура.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну, а вот этот самый ssid- он кто ? Где объявление?

fsdb
Offline
Зарегистрирован: 24.10.2015
String ssid;

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

EEPROM.put(0,ssid.c_str());

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brokly пишет:

EEPROM.put(0,ssid.c_str());

Самое смешное, что "на вид" может и сработать, а потом будут долгие хождения по форумам :)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну дык если человек читать не хочет :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Патамушта низзя начинать обучение програмированию с языков старших поколений, типа C# или Python или JS!

Некие важные предохранители в голове перегорают и человек больше НИКОГДА не сможет понять, что у компа "унутре" происходит.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

wdrakula пишет:

Патамушта низзя начинать обучение програмированию с языков старших поколений, типа C# или Python или JS!

Некие важные предохранители в голове перегорают и человек больше НИКОГДА не сможет понять, что у компа "унутре" происходит.

начинать нада с машинных кодов на перфокартах, или, на худой конец, на полустертых страницах журнала "Радио"

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Да ладно, по большому счету тут глубокого погружения не нужно. Все норамльно запишется в епром. Как оно считается, другой вопрос.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

wdrakula пишет:

Патамушта низзя начинать обучение програмированию с языков старших поколений, типа C# или Python или JS!

Некие важные предохранители в голове перегорают и человек больше НИКОГДА не сможет понять, что у компа "унутре" происходит.

начинать нада с машинных кодов на перфокартах, или, на худой конец, на полустертых страницах журнала "Радио"

Акромя шуток, но я писал в 9ом классе на синих бланках в 80 позиций, которые потом отдавал "девочкам" в набивку и получал колоду перфокарт. Правил, отдавал исправления и отдавал в загрузку. А потом, уже в очереди  подходил к терминалу и в (чём-то - не помню как называлась терминальная система на ЕС-1033?) уже мог увидеть свою программу  и отправить на компиляцию, исполнение и пр.

В то время мои первым языком был классический Паскаль - вспомню - вздрогну! Когда я прочел (через пару месяцев) КиР у меня было счастье, что есть же люди, создавшие удобный и нормальный и главное - понятный язык! ;)))) (я про С)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

wdrakula пишет:

Акромя шуток, но я писал в 9ом классе на синих бланках в 80 позиций

Аналагична.  Только я потом на Фортран перелез, уж после которого Паскаль казался образцом совершенства. 

Поэтому, до С++ я так и не доехал в децтве.  

Турбо Паскаль мне понравился тем, что можно было написать procedure ... assembler  и шарашить после этого слова прям в мнемониках сопроцессора.  Когда я писал диплом, у меня было много систем уравнений в частных производных,  а 286-й не тянул.  Я обычно свои расчеты запускал на ночь, ибо отдельного компа у меня не было, в те времена приходилось его на троих делить. :)  И упаси Боги, чтоб до 8-00 моя программа не досчитала до конца.  

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Нда... Где же это у вас в девятом классе такое было.... ? Я пока в школе учился об этом и не заикались. В институте на первом курсе был фортран, приходилось программу каждый раз ручками набиваить с ноля. Потом был ассемблер, 8088 и 8086. Самопайная ХТ. Дельфи. Стали попадаться микропроцессоры, там опять ассемблер и к нему уже си.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:

Где же это у вас в девятом классе такое было.... ?

У меня в старших классах был "Учебно-производственный комбинат" межшкольный на котором я получил свои первые корочки "Оператор ЭВМ"  там как раз были перфокарты и недоязык программирования "Рапира", воняющая Бэйсиком. Потом уже самосборный Спектрум научил меня не баяцца ассемблера. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Интересный у вас УПК был. Нам предлагали только обучиться профессии таскателя кирпичей и научиться матерно ругаться, вжимая педаль в пол на каком-то полуубитом ЗИЛ-ке .

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

Нам предлагали только обучиться профессии таскателя кирпичей

А у меня до сих пор корочка столяра-сборщика второго разряда лежит.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Мне, видимо, повезло, у меня ВЦ был рядом.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

А я просто "мА-аськоффский матшкольник" ;))) Я в 85-ом (мой 9й класс) ходил в ВЦ ближайшего института, с которым договоренность была. Может родители чьи-то там работали, мы, детьми, в эти материи не вдавались. И да, в матшколе это за УПК считалось.

Это были те самые детали совка, которые были милыми: никаких пропусков, денег, вахтеров. Мы и в высотку МГУ по вечерам ходили, пропуска в ГЗ появились в конце 80-х... Сейчас расскажешь - не верит никто! ;)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

wdrakula пишет:

 Я в 85-ом (мой 9й класс) 

Я тоже мАсковский , только в этом годе уже студент был :) Грыз фортран с фокалом....

bwn
Offline
Зарегистрирован: 25.08.2014

Мдя, а мне тогда родина уже сапоги примерять начала, и одела бы, да на мотоцикле лихо покатался и до 87-го у ней не получилось.))))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

А мне она их и надела (надевать одежду, одевать Надежду) , не взbрая на наличие военной кафедры. Был такой военпидор с фамилией Язов... Два года ракеты запускал :))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

brokly пишет:

А мне она их и надела (надевать одежду, одевать Надежду) , не взbрая на наличие военной кафедры. Был такой военпидор с фамилией Язов... Два года ракеты запускал :))

О! Йа-йа!

Я в 87-ом сдавал летнюю сессию после 1ого курса, когда мне в деканат прислали повестку, потому что дома я их  в унитаз спускал. И это МехМат, блеать, МГУ! Да, и наших тоже забирали, всего 1 год, но два призыва собрали, пидоры!

Я и пошел "с баночкой вазелина" в Военкомат.... и там мне говорят: "Утром приказ вышел - вас не брать. Иди домой!".

Кто-нибудь может себе представить ЧТО(!!!) я почувствовал в тот момент????? ;)))))))))) Так я и стал (уже сильно потом) простым лейтенантом запаса ;)))).

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Я как раз в 87 демобилизовался, со мной одновременно всех студентов, которых с военных кафедр змели,  отправили домой. Но я на военку не ходил. Пытались заставить, так я матом этих старлеев послал :) И у меня был один дополнительный свободный день в неделю :)

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Эк вас всех на воспоминания потянуло-то! А у меня вот с другой стороны баррикады воспоминания.

Я в те годы вполне носил себе сапоги (на самом деле ботинки), в марте 1985 получил роту под Кандагаром и так бы и продолжалась моя незамысловатая военная карьера, если бы не большая беда – а вернее, эпичный обосрамс наших «замполитов» в Шинданде в июне того же года, когда представители братского народа за ХЗ сколько баранов купили наших «союзников», которые аэродром охраняли,  и уничтожили почти целый авиаполк техники (заодно вырезали больше сотни пацанов). После этого, командование собрало группу молодых офицеров (и я туда попал) и отправило на обучение по специальности «организация контрдиверсионной работы». Так до 92-го (пока из армии не уволился) этим и занимался.

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

О! Йа-йа!

Я в 87-ом сдавал летнюю сессию после 1ого курса, когда мне в деканат прислали повестку, потому что дома я их  в унитаз спускал.

Что-то рано для повестки? Или у меня с математикой плохо, или летом 87-ого ты был еще непризывной(судя по ДР. аннонсированному на форуме 2-3 месяца назад)  :)

fsdb
Offline
Зарегистрирован: 24.10.2015

Не осилил я честно скажу. сделал read и write. мне так понятнее

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

fsdb пишет:

сделал read и write. мне так понятнее

Чего? Переменной типа String?

Ох как хотелось бы на это взглянуть! Не покажете?

fsdb
Offline
Зарегистрирован: 24.10.2015
запись
if (server.argName(i)=="password") {
for (int g = 0; g < tmp.length()+1; ++g) {EEPROM.write(g+50, tmp[g]);}
EEPROM.write(tmp.length()+1,0); EEPROM.commit();
}

в конце ставлю 0 для пометки конца данных



Чтение вот так сделал.  если не нашли отметки конца строки то обнуляем т.к. там мусор
password="";
cnt=0;
while (cnt<50) {
int d=EEPROM.read(50+cnt);
if (d==0) {break;}
password+=char(d);
Serial.println(d);
cnt++;  
}
if (cnt==50) {password="";}


 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Имя вайвай сети не может быть больше 32 символов, а пароль 64.

fsdb
Offline
Зарегистрирован: 24.10.2015

честно не заморачивался. у меня еще там русские символы если использовать нужно размер еще и увеличивать т.к. в память пишется - &#1075; - это сразу 7 символов. а я не знаю нужны ли они мне если честно. стоит ли так морочиться. я пока не искал но похоже какую то таблицу нужно будет самому делать что бы &#1075;  перевести в символ русский. да и кушает ли wifi.begin русские символы тоже не смотрел

 
brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Из 4 строки +1 уберите, а то полная ерунда получается.

Кроме того если вы пишите это с адреса 50, то почему ноль втыкаете в какое то не понятное место ? Может в 4 строке должно быть +50 вместо +1 ?

Эти действия делают ровно тоже самое что и EERPOM.put(50,tmp.c_str()).

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

fsdb пишет:

wifi.begin русские символы 

Не кушает.

fsdb
Offline
Зарегистрирован: 24.10.2015

EERPOM.put не работат у меня. я не знаю почему. что то я не так делаю

Из 4 строки +1 уберите, а то полная ерунда получается.
Спасибо. есть косяк. я хотел +50 там дописать. пометить после слова нулем

 

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

fsdb пишет:

EERPOM.put не работат у меня. я не знаю почему. что то я не так делаю

Из 4 строки +1 уберите, а то полная ерунда получается.
Спасибо. есть косяк. я хотел +50 там дописать. пометить после слова нулем

Потому что c_str()

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

b707 пишет:

wdrakula пишет:

О! Йа-йа!

Я в 87-ом сдавал летнюю сессию после 1ого курса, когда мне в деканат прислали повестку, потому что дома я их  в унитаз спускал.

Что-то рано для повестки? Или у меня с математикой плохо, или летом 87-ого ты был еще непризывной(судя по ДР. аннонсированному на форуме 2-3 месяца назад)  :)

ты прав, выходит 88, после 2ого курса. И наших вроде три года брали. Это ФИЗТЕХ 1 год.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

Акромя шуток, но я писал в 9ом классе на синих бланках в 80 позиций...

Зеленые - помню, желтые - помню, синих - не помню.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Аааа... Точно там был номер строки, за каким то непонятным хреном !

sadman41
Offline
Зарегистрирован: 19.10.2016

Сейчас ЕвгенийП расскажет, за каким хреном номера строк нужны ))

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

brokly пишет:

Аааа... Точно там был номер строки, за каким то непонятным хреном !

Похоже у меня такая была, но на Фокал. А номер строки нужен, что бы новую строчку между старых строк вставить. А также GOTO на нужную строку. Тогда GOTO в тренде было. без него никак. Да и функциям номер строки нада. GOSUB и номер строки с которой начинается функция.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Это да, тогда и строки нумеровали через 10, что бы ченить туда вставить потом :) Но как это на бланке ... ваще не понятно....

Мля ... народ, тут че одни пердуны предпенсионного и пенсионного возраста собрались что ли ?!

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

brokly пишет:

Аааа... Точно там был номер строки, за каким то непонятным хреном !

А чтобы перфокарту проще было найти.

sadman41
Offline
Зарегистрирован: 19.10.2016

У меня и перфокарты где-то валялись. Непробитые ))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

brokly пишет:

Аааа... Точно там был номер строки, за каким то непонятным хреном !

А, понятно, что бы гоусуб !!! Отмените Евгения пожалуйста !

sadman41
Offline
Зарегистрирован: 19.10.2016

И чтобы в дневнике мамке писать - мол на занятиях отвлекался и свалял херню, см. строку #... 

bwn
Offline
Зарегистрирован: 25.08.2014

brokly пишет:

Мля ... народ, тут че одни пердуны предпенсионного и пенсионного возраста собрались что ли ?!

Только узнали?))))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Да нет, уточняю :)

Смешно получается. Вопросы задают студенты, а отвечают старики ... Переемственность покалений итить....

Как говориьтся и нахер никого не пошлешь, все уважаемые люди :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я - да. Я еще ДВК помню и PDP-11 программировал всуе.  И VAX/VMS для меня не пустая аббревиатура.  За ней целый шкаф в огромном зале, рев вентиляторов, ауевшие девочки в белых халатах, терминал "Мера" с волшебным зеленым свечением... Молдость, инергия, щастье.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

Я - да. Я еще ДВК помню и PDP-11 программировал всуе.  И VAX/VMS для меня не пустая аббревиатура.  За ней целый шкаф в огромном зале, рев вентиляторов, ауевшие девочки в белых халатах, терминал "Мера" с волшебным зеленым свечением...

еееее.... романтика.... девочки... всуе.... :))))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:

DetSimen пишет:

Я - да. Я еще ДВК помню и PDP-11 программировал всуе.  И VAX/VMS для меня не пустая аббревиатура.  За ней целый шкаф в огромном зале, рев вентиляторов, ауевшие девочки в белых халатах, терминал "Мера" с волшебным зеленым свечением...

еееее.... романтика.... девочки... всуе.... :))))

Ну, не пошло у меня с PDP-11. Не мог я без смеха смотреть на "ИНЖАЛИД ДЕЖИЦЕ".