sd card модуль и lcd

vankenshtein
Offline
Зарегистрирован: 15.04.2014

насколько я понял да, считывает файл и отсчитывает символы

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vankenshtein пишет:

насколько я понял да, считывает файл и отсчитывает символы

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Puhlyaviy пишет:
Мммм... читает. В переменную. Блок длинной в переменную! тоесть если simvol равем 20 байтам. То он будет читать блоки по 20 байтов. Помещая результат каждого чтения в simvol ( затирая предыдущее чтение) While пока файл не кончится.

vankenshtein
Offline
Зарегистрирован: 15.04.2014
myFile = SD.open("test.txt");  // открываем файл
  if (myFile) {
    while (myFile.available()) {   //пока файл не закончится
 myFile.read(simvol, sizeof(simvol));  // отсчитываем 20 символов
     stroka++; // строка увеличивается на 1
      }
      myFile.close();   // закрываем файл
      Serial.println(stroka);  // в сериал печатаем кол-во строк в файле
  }

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

 myFile.read(simvol, sizeof(simvol));  // отсчитываем 20 символов

Puhlyaviy пишет:

Puhlyaviy пишет:
Мммм... читает. В переменную. Блок длинной в переменную! тоесть если simvol равем 20 байтам. То он будет читать блоки по 20 байтов. Помещая результат каждого чтения в simvol ( затирая предыдущее чтение) While пока файл не кончится.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

у меня есть большой сундук с кучей мешочков уложеных попорядку...

мне нужен мешочек номер 20

я открываю сундук

достаю первый мешочек

проверяю что это не 20 мешочек который мне нужен

достаю второй мешочек

проверяю что это не 20 мешочек который мне нужен

....

....

достаю 20 мешочек

проверяю что это 20 мешочек

беру его

закрываю сундук

выставляю 20 мешочек на витрину ( НЕ НОМЕР ЕГО ПОРЯДКОВЫЙ, А САМ МЕШОЧЕК)

vankenshtein
Offline
Зарегистрирован: 15.04.2014

насчет этого я понял), я не понимаю програмно как реализовать это

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

я достаю мешочек со всем его содержимым

Puhlyaviy пишет:

 myFile.read(simvol, sizeof(simvol));  // отсчитываем 20 символов

Puhlyaviy пишет:

Puhlyaviy пишет:
Мммм... читает. В переменную. Блок длинной в переменную! тоесть если simvol равем 20 байтам. То он будет читать блоки по 20 байтов. Помещая результат каждого чтения в simvol ( затирая предыдущее чтение) While пока файл не кончится.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vankenshtein пишет:

насчет этого я понял), я не понимаю програмно как реализовать это

для вас скорее всего никак. бросьте его нафиг. лучше вон попробуйте стихи писать

 

vankenshtein
Offline
Зарегистрирован: 15.04.2014

стихи не интересно, ардуинки куда интересней

vankenshtein
Offline
Зарегистрирован: 15.04.2014

не могли бы вы код показать? помогите пожалуйста. когда виден код будет тогда все станет на свои места и все понятно будет

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vankenshtein пишет:

не могли бы вы код показать? помогите пожалуйста. когда виден код будет тогда все станет на свои места и все понятно будет

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

vankenshtein
Offline
Зарегистрирован: 15.04.2014

myFile.read(stroka, sizeof(simvol));

vankenshtein
Offline
Зарегистрирован: 15.04.2014

ладно спасибо за помощь, попытаю счастья на других форумах

vankenshtein
Offline
Зарегистрирован: 15.04.2014

вот тока одно не понятно почему вы затыкали других людей которые хотели помочь?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vankenshtein пишет:

вот тока одно не понятно почему вы затыкали других людей которые хотели помочь?


Я затыкал тех кто хотел помочь? У вас и так каша в голове при попытке реализовать самый примитивный вариант. А если добавить еще и функции библиотек.. гыыыы.
я пасс.
ИМХО. Но у вас уровень логического мышления примерно где то ребенок 5 лет. Либо вы мастерски прикидываетесь дебилом.

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

vankenshtein пишет:

вот тока одно не понятно почему вы затыкали других людей которые хотели помочь?

у Пухлявого своя секретная метода индивидуального геноцыда новичков.

vankenshtein
Offline
Зарегистрирован: 15.04.2014

да судя по всему так и есть много тем с его участием на форуме перечитал, везде исход один

vankenshtein
Offline
Зарегистрирован: 15.04.2014

если не понимает человек можно же как то на примере показать, обьяснить, именно на примере кода а не на мешочках)

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

vankenshtein пишет:

да судя по всему так и есть много тем с его участием на форуме перечитал, везде исход один

верно - остаются психологически устойчивые.

vankenshtein
Offline
Зарегистрирован: 15.04.2014

вот подсказали

 

// объявление массива начал строк
#define MAX_STRS 365
int filestrs [MAX_STRS];  // резервируем целых 730 байт. Нужно смотреть за расходом ОЗУ.
int firststr_disp=0; // номер первой строки на дисплее
int lastfilestr=0 // количество строк в файле
......
// Заимствовано, заполнение файла.

// Предполагается, что файл при этом создается, а не дописывается.
if(outoffbt == HIGH){
  while(var < MAX_STRS){
    myFile = SD.open("test.txt", FILE_WRITE);
    if (myFile) {
      Serial.print("Writing to test.txt...");
      filestrs[lastfilestr]=myFile.position();
      myFile.print(rtc.getDateStr());
      myFile.print("    ");
      myFile.print(rtc.getTimeStr());
      myFile.print("    ");
      myFile.println(obsh_nastrel);
      lastfilestr++;
      myFile.close();
      Serial.println("done.");
    } else {
      // if the file didn't open, print an error:
      Serial.println("Error writing");
    }
    var++;
  }
}
// где-то в loop()
// отображаем  две строки файла
  myFile = SD.open("test.txt");
  if (myfile)
{
    myfile.seek(filestrs[firststr_disp]);
    char tmpstr[20];
    char tmpstrlen=0;
    while (myfile.available()) { // читаем первую строку
      tmpstr[tmpstrlen]=myfile.read();
      if ((tmpstr[tmpstrlen]=='\n')||(tmpstr[tmpstrlen]=='\r')) break;
       tmpstrlen++;
    }
    lcd.setCursor(0,0);
    lcd.print(tmpstr);
    tmpstrlen[tmpstrlen]=0;
    while (myfile.available()) { // гоним до следующей строки, пока не пропустим все переводы строки
      char ch=myfile.read();
      if ((ch!='\n')&&(ch!='\r')) break;
    }   
    tmpstrlen=0;
    while (myfile.available()) {// читаем вторую строку
      tmpstr[tmpstrlen]=myfile.read();
      if ((tmpstr[tmpstrlen]=='\n')||(tmpstr[tmpstrlen]=='\r')) break;
      tmpstrlen++;
    }
    tmpstrlen[tmpstrlen]=0;
    lcd.setCursor(0,1);
    lcd.print(tmpstr);
    myFile.close();
}


// обрабатываем кнопки
if (нажата кнопка вверх)
{
  if (firststr_disp>0) firststr_disp--;
}
if (нажата кнопка вниз)
{
  if (firststr_disp<MAX_STRS-1) firststr_disp++; // если уже стоим на предпоследней строке, дальше двигаться нельзя.
}
vankenshtein
Offline
Зарегистрирован: 15.04.2014

но всетаки хотелось бы разобраться с этим:

 

завели переменные

СТРОКА - хранит общее количество строк
СтрокаНаПечать - хранит номер первой строку на дисплее. при запуске равно 1

ТекущаяСтрока - хранит строчку которую печатаем

открыли файл

сделали цикл по общему подсчету строк

закрыли файл

 процедура по извлечению нужной строки

получили номер строки в переменной Строка_на_печать

открыли файл

отсчитали до нужной переменной

вернули переменную ТекущаяСтрока 

начали луп

 

 

Есть желающие помочь?

Arhat109
Offline
Зарегистрирован: 26.05.2015

Желающие помочь - есть, но вы правильно сообразили: НЕ НА ЭТОМ ФОРУМЕ. Например тут могут помочь robocraft.ru или тут cyber-place.ru

Этот форум успешно решает задачи выноса Ардуино из пользования ... видимо такая вот "конкурентная борьба" ... иных причин - НЕ ВИЖУ.

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

Arhat109 пишет:

Этот форум успешно решает задачи выноса Ардуино из пользования ... видимо такая вот "конкурентная борьба" ... иных причин - НЕ ВИЖУ.

всегда таким задаю конкретный вопрос:Arhat109, а вы когда начнёте уходить с этого форума?

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

Клапауций 999 пишет:

Arhat109 пишет:

Этот форум успешно решает задачи выноса Ардуино из пользования ... видимо такая вот "конкурентная борьба" ... иных причин - НЕ ВИЖУ.

всегда таким задаю конкретный вопрос:Arhat109, а вы когда начнёте уходить с этого форума?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

vankenshtein пишет:

но всетаки хотелось бы разобраться с этим:

 

завели переменные

СТРОКА - хранит общее количество строк
СтрокаНаПечать - хранит номер первой строку на дисплее. при запуске равно 1

ТекущаяСтрока - хранит строчку которую печатаем

открыли файл

сделали цикл по общему подсчету строк

закрыли файл

 процедура по извлечению нужной строки

получили номер строки в переменной Строка_на_печать

открыли файл

отсчитали до нужной переменной

вернули переменную ТекущаяСтрока 

начали луп

 

 

Есть желающие помочь?

"вот подсказали" - дык подсказавший чё не поможет разобраться ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Puhlyaviy пишет:

ааааааа , вон кому 20-ый мешочек нужен был !!!!!!!!!!!!!!!!!!!!!!!!
....лошадке ? :)

vankenshtein
Offline
Зарегистрирован: 15.04.2014

хотелось бы и с этим разобраться

Arhat109
Offline
Зарегистрирован: 26.05.2015

Вы его который раз задаёте? Отвечал жеж: не надейтесь, с вами прикольно. :)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

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

цирк с конями

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Arhat109 пишет:

Вы его который раз задаёте? Отвечал жеж: не надейтесь, с вами прикольно. :)

половой акт - $100 , наблюдение за ПА -$200 , наблюдение за наблюдающим за ПА - $500 ?