Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

X-50
2023-01-08 15:35:20

Запрацювало!  https://youtu.be/OpTujqvTQnk

Х-50
2023-01-08 15:24:54

Велике прохання- поки що код мені не пишіть- спробую сам розібратися.

Х-50
2023-01-08 14:47:19

Дякую за просвітлюючий пендель. Частину уже пофіксив. Зявилися до речі нові питання- але то згодом-вони стосуються логіки роботи порту(сьогодні я ще раз сильно полюбив Джаву, яку з потугами вивчаю за її строгу типізацію, там такі несподівані результати  неможливі). Це з відео буде- трохи пізніше. Поки що з цим поробзираюся. Також треба було зробити пауза та виспатися.

г0cть
2023-01-08 01:26:35
X-50 пише:

частина 1- працює.

Боюся розчарувати, але з частиною 1 також

X-50 пише:

- повна жопа.

Для початку розпишіть у кожному рядку коментарі що по вашому там виконується. Потім уважно почитайте документацію https://doc.arduino.ua/ru/prog/StringObject на ті функції які там використовуються і подивіться чи виконується те що ви задумали.
Для полегшення аналізу зробіть вивід результату виконання кожної функції в Serial.

X-50
2023-01-07 22:25:59

результат конмади Write 8 а потім read 8 такий


0
  8
221
ad 8

X-50
2023-01-07 22:17:58

Я бюся вже днів 5 над задачею. частина 1- працює. треба ввести в монітор порта команду в форматі " read ** "   де **- адреса комірки памяті яку треба зчитати.  Це працює- видаю 255(заводські налуштування комірки-значення за зщамовчуванням. поки в неї не писали) та якщо вручну записати значення- воно відображається коректно.
АЛЕ з записом- повна жопа. треба ввести конанду " Write **  **** "де **-адреса комірки, ****- значення. ДО ВВЕДЕННЯ В ТАКОМУ ФОРМАТІ ЩЕ НЕ ДОРОБИВ ПРОГУ, зараз спрощений вид-  " write ** "-  де **- значення, які я намагаюся записати в комірку №8

Крім того, що нічого не працює- ще й виконується перший цикл з умовою read - коли вводиться write- як таке може бути взагалі????
if else та else не працює...

#include <EEPROM.h>
void setup() {
     Serial.begin(9600);
}
void loop() {
  if (Serial.available()) {
  String str = Serial.readString();
  str.trim();
  str.toLowerCase();
  if(str.indexOf('Read')){
    String r = str.substring(str.indexOf('Read')+1); 
    Serial.println(EEPROM.read(r.toInt()));
    }
   if(str.indexOf("Write")){     
   String w = str.substring(str.indexOf('Write')+1 );
    String ww = str.substring((str.indexOf('Write')+1), str.length());
    Serial.println(ww);
    int val = ww.toInt();
    EEPROM.put(8, ww);
   }
  }

Підвал форуму