пролистывание строк на дисплее

Radjah
Offline
Зарегистрирован: 06.08.2014

char tmpstr[16];

замени на

char tmpstr[16]="";

Приучай себя инициализировать перемененные перед использованием.

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

char tmpstr[16]="";  а что в кавычках прописать?

Приучай себя инициализировать перемененные перед использованием.

Для чего это нужно?

nevkon
Offline
Зарегистрирован: 20.01.2015

Кавычки пустые. Нужно чтобы при обращении к переменной не было ошибки доступа.

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

понял, спасибо большое

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

вроде разобрался наконец))

//РЕЖИМ ЧТЕНИЯ
 if(readbt_state == HIGH && nastrbt_state == LOW){
   
   myFile = SD.open("tir5.txt");
  if (myFile)
{
    myFile.seek(var);
    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);
    tmpstr[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++;
    }
    lcd.setCursor(0,1);
    lcd.print(tmpstr);
    tmpstr[tmpstrlen]=0;
    
     while (myFile.available()) { // гоним до следующей строки, пока не пропустим все переводы строки
      char ch=myFile.read();
      if ((ch!='\n')&&(ch!='\r')) break;
    }   
    tmpstrlen=0;
    
    while (myFile.available()) { // читаем 3 строку
      tmpstr[tmpstrlen]=myFile.read();
      if ((tmpstr[tmpstrlen]=='\n')||(tmpstr[tmpstrlen]=='\r')) break;
       tmpstrlen++;
    }
    lcd.setCursor(0,2);
    lcd.print(tmpstr);
    tmpstr[tmpstrlen]=0;
    
    while (myFile.available()) { // гоним до следующей строки, пока не пропустим все переводы строки
      char ch=myFile.read();
      if ((ch!='\n')&&(ch!='\r')) break;
    }   
    tmpstrlen=0;
    while (myFile.available()) {// читаем 4 строку
      tmpstr[tmpstrlen]=myFile.read();
      if ((tmpstr[tmpstrlen]=='\n')||(tmpstr[tmpstrlen]=='\r')) break;
      tmpstrlen++;
    }
    
    lcd.setCursor(0,3);
    lcd.print(tmpstr);
    tmpstr[tmpstrlen]=0;
    myFile.close();
    
    myFile.close();
}
// обрабатываем кнопки  menuup_flag

if(output3_1 == LOW && menuup_flag==0) 
    { 
       menuup_flag=1;
       }
if (output3_1 == HIGH && menuup_flag==1)
{
    if (firststr > 0)    firststr - 3;
    var = var - 60;
    lcd.clear();
  menuup_flag=0;
}
if (output3_2 == LOW && menudown_flag==0)
{ 
        menudown_flag=1;
       }
if (output3_2 == HIGH && menudown_flag==1)
{ 
  
  if (firststr < 300)   firststr+3; // если уже стоим на предпоследней строке, дальше двигаться нельзя.
menudown_flag=0;
var = var + 60;
lcd.clear();
}
 }