Переменные

pwal
Offline
Зарегистрирован: 17.04.2016

Вопрос по String 

Объявляю глобальную переменную

String _id ="id1" ; 

String _id ="id1" ; 
setup {}
Serial.begin(9600);
loop() {
 Serial.println(_id);}  //выводит все правильно -> id1
}

void _com_bas (String _com, int a) {
 Serial.println(_id);  //выводит два квадратика и 1 

}



и в цикле loop() { Serial.println(_id);} выводит все правильно -> id1

но как только пытаюсь сделать Serial.println(_id); из процедуры - выводиться два квадратика и 1

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

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

А Вы не могли бы копипастить сюда именно тот скетч, который у Вас выполняется, а не какой-то левый бред, который не может ничего никуда выводить по той простой причине, что он даже не компилируется?

pwal
Offline
Зарегистрирован: 17.04.2016

ЕвгенийП пишет:

А Вы не могли бы копипастить сюда именно тот скетч, который у Вас выполняется, а не какой-то левый бред, который не может ничего никуда выводить по той простой причине, что он даже не компилируется?

Если Вам нечего сказать по теме - лучше не говорите, умнее будете выглядеть ....

Cessi71
Offline
Зарегистрирован: 21.05.2016

То что в первом посте полный бред а не код, я один заметил.?

pwal
Offline
Зарегистрирован: 17.04.2016

Набежали троли



String _id ="id1" ; void setup { Serial.begin(9600); } void loop() { Serial.println(_id);} //выводит все правильно -> id1 } void _com_bas (String _com, int a) { Serial.println(_id); //выводит два квадратика и 1 }

Специально для тролей...

negavoid
Offline
Зарегистрирован: 09.07.2016

Не, тролль это вы :) Мой телепатор говорит, что имелось в виду подобное:

String _id = "id1" ;

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println(_id); // выводит все правильно -> id1
  _com_bas("ts is a lazy donkey", 42);
  delay(1000);
}

void _com_bas (String _com, int a) {
  Serial.println(_id);  // выводит все правильно -> id1
}

Но оно работает ))

pwal
Offline
Зарегистрирован: 17.04.2016

согласен что немного ошибся при написании в пост 

в реале код такой же как и у Вас. Сути не меняет..

Я могу скетч сюда сбросить - но боюсь что толку не будет ибо мне нужно понять в чем может быть причина  такого трабла

pwal
Offline
Зарегистрирован: 17.04.2016
#include <CyberLib.h>

#include <EEPROM.h>
#include <LCD_1602_RUS.h>
#include <DS1307RTC.h>
#include "pitches.h" // для музыки ))
//#include <Time.h>
#include <TimeLib.h>
//#include <TimerOne.h>
//#include <RTClib.h>
#include <Wire.h>
#include "TM1637.h"

#include "DHT.h"
LCD_1602_RUS lcd(0x3f, 16, 2);
DHT dht;
int dhtPin = 24;
#define CLK_2 6
#define DIO_2 7
TM1637 display(CLK_2, DIO_2);
int uborka = 30;
#define CLK 5
#define DIO 4
#define pin_trans 11
/*пины прерываний mega2560
   №2 - 21
   №3 - 20
   №4 - 19
   №5 - 18
*/


TM1637 display2(CLK, DIO); // initialize the library for pins 5,4

#define CLK_3 15
#define DIO_3 14
TM1637 disp3(CLK_3, DIO_3); // initialize the library
#define CLK_4 9
#define DIO_4 10
TM1637 disp4(CLK_4, DIO_4); // initialize the library
boolean _knopka37 = false; // переменная для отслеживания нажатия кнопки быстрого включения света для показа
int _pech_stop = 20;
int _pech_start = 60;
int _point = 1;
int8_t Disp[4]; // Dimension of digits 1
int8_t Disp2[4]; // Dimension of digits № 2
boolean flag_klimat  = false;
int  nH[8]; // массив для хранения и обновления данных с часов
int _start[4]; // массив времени старта заказа
#define _time_geyzer 15
int  _end[4]  = {0, 0, 0, 0}; // массив времени окончания заказа
int _vlaga_klimat_min; //= 55;
int _vlaga_klimat_max ; //= 70;
int _sutki = 0;
float _temperatura_bas;
boolean  _ok = false;
/* переменные для работы с таймером выполнения заказа

*/

/*
*/

int vrem[5]; // 5 - элемент для записи значения дня
#define _pin_start_pech 26 // номер управляющего пина печки
#define _pin_start_klimat 29 // управляющий пин климата
#define _vent_vit 28 // номер управляющего пина вытяжки
#define _vent_pritok 27 // номер управляющего пина приточки
#define _svet_parilka 42 // номер управляющего пина света в парилке
#define _lestnisa 43
#define _pkn 45
#define _svet_level2 46
#define _nebo 48
#define  _svet_krilco 47
#define _avto_pin 49

/*    43 -2 - лестница
      44- 3-кастрюля
      45 -4-ПКН
      46 - 5-свет второй этаж
      47 - 6-свет на верху лестницы
      48 -7- розетки и звездное небо
      49 - -8управление на себя
*/

unsigned long previousMillis = 0;
int temp_low;// = 75;//нижняя температура нагрева печки
int temp_high;// = 80; //верхняя температура нагрева печи
boolean flag_start = false; // флаг того что установленно время старта заказа
boolean flag_end = false; // флаг того что установленно время окончания заказа
boolean flag_pech = false; // флаг того что печка включилась, привязать к кнопке старта заказа
//String (aa1) = String(temp_low);

String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

volatile int state = LOW;
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
// Data wire is plugged into port 2
#define ONE_WIRE_BUS2 3
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
OneWire oneWire3(ONE_WIRE_BUS2);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
DallasTemperature sensors3(&oneWire3);
boolean _kontrol_pech = false; // переменная контрольная точка, определяет -включалась печь на нагрев или нет
// arrays to hold device address
//DeviceAddress insideThermometer;
boolean menu_select[4]; // массив флагов , показывает какой пункт меню выбран
int menu_state = 0; // метка какое меню выбиралось
byte addr1[8] = {0x28, 0xFA, 0xA1, 0x1E, 0x00, 0x00, 0x80, 0xFC}; // указываем адрес датчика температуры
byte addr2[8] = {0x28, 0xEE, 0x50, 0x0E, 0x01, 0x16, 0x02, 0xF5 }; // адрес уличного датчика температуры
byte addr3[8] = {0x28, 0xDD, 0xA1, 0x1E, 0x00, 0x00, 0x80, 0xCF}; // датчик1 в парилке
byte addr4[8] = {0x28, 0x30, 0x9B, 0x1E, 0x00, 0x00, 0x80, 0x95}; // датчик2 в парилке
byte addr5[8] = {0x28, 0xEE, 0xD0, 0xF2, 0x00, 0x16, 0x02, 0xF6 }; // датчик в зале
byte addr6[8] = {0x28, 0xEE, 0x82, 0xFE, 0x00, 0x16, 0x02, 0xF2}; // датчик в зале
const int analogInPin = A10;
int _wal = 0;
int _nmenu = 0;
float  tyty = 0;
String _idMega;


void setup() {
  for (int a = 0; a < 4; a++) {
    menu_select[a] = false;
    // _end[a] = 0;
  }
 _idMega = "id1"; 
  for (int a = 0; a < 5; a++) {
    vrem[a] = 0;
  }
  sensors.requestTemperatures();
  vlaga();
  _vlaga_klimat_max = EEPROM.read(0) ;
  _delay(1);
  _vlaga_klimat_min = EEPROM.read(1) ;
  _delay(1);
  temp_high = EEPROM.read(2) ;
  _delay(1);
  temp_low = EEPROM.read(3) ;
  _delay(1);
  menu_select[0] = true;
  Serial.begin(9600, SERIAL_8N1);
  Serial2.begin(9600, SERIAL_8N1);
  Serial.setTimeout (1000);
  Serial2.setTimeout (1000);
  nBut();// прописываем пины кнопок
  tone (8, 2000, 150); //включаем на 2000 Гц, 150 продолжительность в миллисек
  display.init(); // Start display
  display.set(7); // Setup brightness 0 to 7

  display2.init(); // Start display
  display2.set(7); // Setup brightness 0 to 7
  display2.point(POINT_OFF);
  pinMode(41, OUTPUT);
  disp3.set(4);
  disp3.init();
  disp3.point(POINT_ON);
  disp4.set(4);
  disp4.init();
  disp4.point(POINT_ON);
  lcd.init();
  lcd.backlight();
  dht.setup(dhtPin);
  sensors.begin();
  sensors3.begin();

  digitalWrite(_pin_start_pech, LOW);
  Serial.print("Setup ");
  Serial.println( _end[0] );
  Serial.println( _end[1] );
  Serial.println( _end[2] );
  Serial.println( _end[3] );
}

void loop() {

  //  if (vrem[1] == 0 && flag_start == false) {
  //    nled(17, 17, 17, 17, 2, 2);
  //    flag_end = false;
  //    start_pech(0);
  //
  //  } else  {
  //    Tstart();
  //  }
  //  int a1 = 0;
  //
  //  a1 += _end[0] * 600;
  //  a1 += _end[1] * 60;
  //  a1 += _end[2] * 10;
  //  a1 += _end[3];
  //  nss("a1=",a1);
  //  nss("end2", _end[0] );
  //  nss("end2", _end[1] );
  //  nss("end2", _end[2] );
  //  nss("end2", _end[3] );
  int e1;
  e1 = end_minut();
  Serial.print("_idMega ");
  Serial.println(_idMega);
  if ( e1 == 0 && start_minut() == 0 && flag_start == false) {
    nled(17, 17, 17, 17, 2, 2);
    flag_end = false;
    start_pech(0);

  } else  {
    Serial.print("end vrem_DO_Tstart ");
    // Serial.println(*_end);
//    Serial.println( _end[0] );
//    Serial.println( _end[1] );
//    Serial.println( _end[2] );
//    Serial.println( _end[3] );
    Tstart();
//    Serial.print("end vrem_POSLE_Tstart ");
//    Serial.println(*_end);
//    Serial.println( _end[0] );
//    Serial.println( _end[1] );
//    Serial.println( _end[2] );
//    Serial.println( _end[3] );
  }

    if (stringComplete) {
      String input = inputString;
      input.trim();
      if ( input.substring(0, 3) == _idMega && input.substring(3, 5) == "dt") { // получаем температуру воды бассейна
  
        char floatbufVar[32];
        String stringVar = input.substring(input.indexOf("dt") + 5, input.indexOf("k") );
        stringVar.toCharArray(floatbufVar, sizeof(floatbufVar));
        _temperatura_bas  = atof(floatbufVar);
  
      } else if ( input.substring(0, 3) == _idMega && input.substring(3, 5) == "ok") {
        _ok = true;
        inputString = "";
        stringComplete = false;
        while (Serial2.available()) Serial2.read();
      }
  
    }

  if ( flag_klimat == true) {// переменная флаг -включения климат контроля
    klimat(1);
  } else {
    //
    klimat(0);
  }

  float _zalT;

  nRtc();
  tyty = vlaga();

  //nss("sstart_minut()", end_minut());



  _zalT = Termo(addr5);
  disp3.clearDisplay(); //start();
  disp3.display(tyty);
  disp4.clearDisplay(); //start();
  disp4.display(_zalT);
  // lcd.backlight();

  lcd.setCursor(13, 1);
  lcd.print(L" ");
  delay(150);
  lsd_time( );// показ текущего времени на lsd дисплее в правом нижнем углу
  //  Serial.println( _end[0] );
  //  Serial.println( _end[1] );
  //  Serial.println( _end[2] );
  //  Serial.println( _end[3] );
  //  delay(1000);
  //return;
  for (int a = 34; a <= 37; a++) { // проверяем состояние пинов кнопок на нажатие

    int _d = digitalRead(a);


    if ( _d == HIGH && (millis() - previousMillis > 60)) {
      delay(1);
      previousMillis = millis();

      switch (a) {
        case 34: // кнопка "+ час" на табло времени
          tone (8, 1800, 100);
          lcd.clear();

          lcd.setCursor(0, 0); // ставим курсор в 0,0
          lcd.print(L"Влажность");
          lcd.setCursor(0, 1);
          lcd.print(L"Улица");


          for    (int t = 0; t < 10; t++) {

            lcd.setCursor(10, 0);
            lcd.print(vlaga());
            lcd.setCursor(8, 1);
            lcd.print(Termo(addr2));
            delay(50);
          }
          break;
        case 35://кнопка "- час" на табло времени
          lcd.clear();
          tone (8, 1800, 100);
          lcd.setCursor(0, 0);
          lcd.print(L"Зал  1  ");
          lcd.print(Termo(addr5));
          lcd.setCursor(0, 1);
          lcd.print(L"Зал  2  ");

          lcd.print(Termo(addr6));
          delay(1000);
          break;

        case 36:
          tone (8, 1800, 100);
          Serial.print("Srabotal pin # ");
          Serial.println(a);
          menu_lsd();
          break;
        case 37://кнопка "быстрого включекния света и т.п. на верху, для просмотра помещения
          // nlsd(a, "Сработал пин");
          rabota(3);
          Serial.print("Srabotal pin # ");
          Serial.println(a);
          tone (8, 1800, 100);
          break;

      }

      break;// отслеживаем только до первого нажатия любой кнопки
    }

  }



}


float vlaga() { // вычисление влажности
  delay(dht.getMinimumSamplingPeriod());
  float humidity ;
  humidity  = dht.getHumidity();
  return humidity ;
}

int clock_minut () {
  int a = 0;
  nclock(); // обновляем время в массиве
  a = (nH[0] * 600) + (nH[1] * 60) + (nH[2] * 10) + nH[3];

  return a;
}
int start_minut () {
  int a = 0;
  a =  (_start[0] * 600) + (_start[1] * 60) + (_start[2] * 10) + _start[3] ;
  return a;
}
int end_minut11 () {
  int a1 = 0;

  a1 += _end[0] * 600;
  a1 += _end[1] * 60;
  a1 += _end[2] * 10;
  a1 += _end[3];
//  nss("end", _end[0] );
//  nss("end", _end[1] );
//  nss("end", _end[2] );
//  nss("end", _end[3] );

  //  Serial.println( _end[0] );
  //  Serial.println( _end[1] );
  //  Serial.println( _end[2] );
  //  Serial.println( _end[3] );
  return a1;
}

int end_minut () {
  //  if ( _end[0] == 0 && _end[1] == 0 && _end[2] == 0 && _end[3] == 0) {
  //    return 0;
  //  }
  int a1 = 0;
  //  Serial.print("end ");
  //  Serial.println(*_end);
  //  Serial.println( _end[0] );
  //  Serial.println( _end[1] );
  //  Serial.println( _end[2] );
  //  Serial.println( _end[3] );
  //a1 = ( _end[0] * 600) + (_end[1] * 60) + (_end[2] * 10) + _end[3] ;
  a1 += _end[0] * 600;
  a1 += _end[1] * 60;
  a1 += _end[2] * 10;
  a1 += _end[3];
  return a1;
}
float Termo (byte _adr[8]) { // возврат температуры датчика по его адресу
  sensors.setResolution(12);
  sensors.setWaitForConversion(false);
  sensors.requestTemperatures();
  sensors.setWaitForConversion(true);
  float tempC = sensors.getTempC(_adr);
  return tempC;
}

float clock_hour(int _minuti) { // разница между минутами с возвратом в нормальном виде часы и минуты
  int _h;
  float _m;
  float  _m1;

  float _a;
  _h = _minuti / 60;
  _m =  _minuti % 60;
  _m1 = _m / 100;


  _a = _h +  _m1;

  return _a;
}
void svet_noch (int a) {
  if (a == 0) {
    digitalWrite(_lestnisa, HIGH);
    digitalWrite(_svet_krilco, HIGH);
    digitalWrite(_pkn, HIGH);
  } else if (a == 1) {
    int _wal;
    _wal = analogRead(analogInPin);
    // nss("wal noch", _wal);
    if (_wal >= 850) {
      digitalWrite(_lestnisa, LOW);
      digitalWrite(_svet_krilco, LOW);
      digitalWrite(_pkn, LOW);
    } else {
      digitalWrite(_lestnisa, HIGH);
      digitalWrite(_svet_krilco, HIGH);
      digitalWrite(_pkn, HIGH);
    }

  }
}
void vrem_ini(int a) {
  /*  vrem[0] время начала подготовки к заказу
      vrem[1]  время начала заказа
      vrem[2] = время конца заказа
      vrem[3] = время окончания уборки
      переменная "а" - ноль значит обнулить массив
      все значения в минутах!
  */
  //  nss("start_minut()", start_minut());
  //
  //  nss("end_minut()", end_minut());
  int _rr;
  _rr = start_minut () - _pech_start;
  //nss("start_minut()- _pech_start", _rr);
  if (start_minut() > end_minut11() &&  _rr >= 0 ) { // если время заказа переходное с суток на следующие

    vrem[0] = start_minut () - _pech_start  ;
    vrem[1] = start_minut ()  ;
    vrem[2] = end_minut11() + 1440;
    vrem[3] = end_minut11() + uborka + 1440;

  } else if (start_minut () < end_minut11() &&  _rr < 0) {
    /* если время заказа в новых сутках,
         но до часа ночи старт или старт с 00 часов
    */
    vrem[0] =  _rr + 1440 ;
    vrem[1] = start_minut () + 1440 ;
    vrem[2] = end_minut11() + 1440 ;
    vrem[3] = end_minut11() + uborka + 1440 ;

  } else if (start_minut () == 1440) {
    vrem[0] = start_minut () - _pech_start + 1440 ;
    vrem[1] = start_minut () + 1440 ;
    vrem[2] = end_minut11() + 1440 ;
    vrem[3] = end_minut11() + uborka + 1440 ;


  } else if (start_minut () > end_minut11() &&  _rr < 0)    {
    vrem[0] = start_minut () - _pech_start + 1440 ;
    vrem[1] = start_minut () + 1440 ;
    vrem[2] = end_minut11() + 1440 ;
    vrem[3] = end_minut11() + uborka + 1440 ;

  } else {
    vrem[0] = start_minut () - _pech_start ;
    vrem[1] = start_minut ()  ;
    vrem[2] = end_minut11() ;
    vrem[3] = end_minut11() + uborka  ;

  }
  if (  vrem[0] < 1440 && vrem[1] > 1440 && vrem[2] > 1440 && vrem[3] > 1440) {
    vrem[4] = nH[4] - 1;
  } else {
    vrem[4] = nH[4];
  }
  //  if (start_minut () > end_minut() &&  _rr < 0) {
  //    vrem[4] = nH[4] - 1;
  //  } else {
  //    vrem[4] = nH[4];
  //  }

  for (int t = 0; t < 5; t++) { // если придет ноль то массив обнулится
    vrem[t] = vrem[t] * a;
    nss("vrem[" + String(t) + "]=",  vrem[t]);
  }

}
void serialEvent2() {
  while (Serial2.available() ) {
    char inChar = (char)Serial2.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}
void serialEvent() {
  String input = "";
  while (Serial.available()) {
    input += char( Serial.read());

  }
  input.trim();
  /* z****e****  команда для ввода начала заказа и окончания заказа,  время старта и окончания в минутах!
     v**e** команда для ввода значения влажности
     k* (1 или 2) команда запуста климата
  */

  if (input.length() != 0) {
    Serial.print("input.length() = ");
    Serial.println( input.length());
    char w = input.charAt(0);

    if  (input.charAt(0) == 'z' && input.length() == 10 ) {

      for (int a = 1; a <= 4; a++) {
        _start[a - 1] = int(input.charAt(a) - 48);
      }
      for (int a = 6; a < 10; a++) { // тут надо просмотреть!!!!!!!!!
        int b = a - 6;
        _end[b] = int(input.charAt(a) - 48);
        Serial.print("_end - serialEvent() ");
        Serial.println( _end[b] );
      }
      flag_start = true;
      vrem_ini( 1);
      Serial.print("Zakaz = ");
      Serial.println(w);
      tone (8, 1900, 200);
    } else if (input.charAt(0) == 'z' && input.length() == 2 ) {
      for (int a = 0; a <= 3; a++) {
        _start[a] = 0;
        _end[a] = 0;
      }
      vrem_ini(0);
      start_pech(0);
      flag_start = false;
      flag_klimat = false;
      flag_end = false;
      rabota (0);
      tone (8, 1800, 200);
      //    } else if (input.charAt(0) == 'p' && input.charAt(1) == 'e' && input.length() == 2 ) {
      //      nss("pech", 1);

    } else if (input.substring(0, 4) == "pech"  ) {
      int a;
      String a1 ;
      if (input.length() == 9) {
        a1 = input.substring(4, 6);
        a = a1.toInt ();
        temp_high = a; //верхняя температура нагрева печи
        a1 = input.substring(7, 9);
        a = a1.toInt ();
        temp_low = a;//нижняя температура нагрева печки
      } else if (input.length() == 10) {
        a1 = input.substring(4, 7);
        a = a1.toInt ();
        temp_high = a; //верхняя температура нагрева печи
        a1 = input.substring(8, 10);
        a = a1.toInt ();
        temp_low = a;//нижняя температура нагрева печки
        // Serial.println(input.substring(4, 7));
      }
      if (temp_high <= temp_low) {
        temp_low = temp_high - 10;
      }
      EEPROM.write(2, temp_high);
      delay(400);
      EEPROM.write(3, temp_low );
      delay(400);
      Serial.println(a);
      Serial.print("input pech = ");
      Serial.println(input);
    } else if (input.charAt(0) == 'v' && input.length() == 6 ) {

      int v1;
      int v2;
      v1 = int(input.charAt(1) - 48) * 10 + int(input.charAt(2) - 48);

      v2 = int(input.charAt(4) - 48) * 10 + int(input.charAt(5) - 48);
      if (v1 > v2) {
        _vlaga_klimat_max = v1;
        _vlaga_klimat_min = v2;
      } else if (v2 == 0) {
        _vlaga_klimat_max = v1;
      }
      EEPROM.write(0, v1);
      delay(400);
      EEPROM.write(1, v2);
      delay(400);
      Serial.print("V1 = ");
      Serial.println( v1);
      Serial.print("V2 = ");
      Serial.println( v2);
    } else if (input.charAt(0) == 'k') {
      //
      //      Serial.println( int( input.charAt(1)));

      int inByte = int( input.charAt(1)) - 48;
      Serial.print("K =  ");
      if ( inByte == 1) {
        flag_klimat = true;
        Serial.println("ON");
      } else if (inByte == 2) {
        flag_klimat = false;
        Serial.println("OFF");
      }


    } else if (input.charAt(0) == 'p' && input.charAt(1) == 'i' && input.charAt(2) == 'n'  ) {
      int _p;
      if ( input.length() == 5) {
        _p = ((input.charAt(3) - 48) * 10 + (input.charAt(4) - 48))  ;
      } else {
        _p = input.charAt(3) - 48  ;
      }
      String _pp = "";
      _pp = "pin " + String(_p) + " - ";

      if (digitalRead(_p) == 0) {
        _pp = _pp + "LOW";
        Serial.println(_pp);
      } else {
        _pp = _pp + "HIGH";
        Serial.println(_pp);
      }

    } else if (input.charAt(0) == 'i' && input.charAt(1) == 'd' && input.charAt(2) == 50  ) {
      digitalWrite(pin_trans , HIGH); //включаем передачу
      delay(50);
      Serial2.print(input);
      delay(500);
      //  Serial2.print(9);
      tone (8, 2000, 150);
      //       Serial.println(input);
      //  Serial2.end();
      Serial.println(input);
    }



  }

}
void _com_bas( String _com, int a) {
  String _commanda = "id2";
  _idMega= "id1";
  //_commanda = _commanda + _idMega;
  Serial.print( "_command   ");
  Serial.println( _commanda);
  Serial.print( "_idMega  ");
  Serial.println( _idMega);
  return;
  // int vibor = 0;
  _com.trim();
  if (_com == "geyzer") {
    _commanda = "id2dp11k" + char( a);// String(a,DEC) ;
    //_command.trim();
    Serial.print( "_command geyzer  ");
    Serial.println( _commanda);
  } else if (_com == "fara") {
    _commanda = "id2dp10k" + char( a);// String(a,DEC);
  } else if (_com == "filtr") {
    _commanda = "id2dp09k" + char( a);// String(a,DEC);
  } else if (_com == "forsunki") {
    _commanda = "id2dp08k"  + char( a);// String(a,DEC);
  } else if (_com == "temperatura_bas") {
    _commanda = "id2dt01k" + char( a);
  } else if (_com == "temperatura_gvs") {

  } else if (_com == "temperatura_hvs") {

  } else if (_com == "klapan_hvs") {

  } else if (_com == "klapan_gvs") {

  } else if (_com == "kran_pogreva") {

  } else {
    return;
  }

  _commanda = _commanda + _idMega  + 'e' + '\n';
  digitalWrite(pin_trans , HIGH);
  D11_High; //включаем передачу
  _delay(1);
  Serial2.println( _commanda);
  Serial.print( "_command com bas  ");
  Serial.println( _commanda);
  _delay(1);
  D11_Low; //выключаем передачу
  digitalWrite(pin_trans , LOW);
  _delay(1);
  unsigned long  _tt;
  _tt = millis() ;
  int aa = 0;

  while ( _ok == false && aa <= 2) {
    aa = (millis() - _tt) / 1000;
    //    lcd.clear();
    //    lcd.setCursor(0, 0);
    //    lcd.print(L"Ждем ответа");
    //    lcd.setCursor(0, 1);
    //    lcd.print(L"от");
    //    lcd.setCursor(3, 1);
    //    lcd.print(_command);
  }
  if (_ok) {
    _ok = false;
  } else {
    //    _delay(2);
    //    lcd.clear();
    //    lcd.setCursor(0, 0);
    //    lcd.print(L"Ответа от");
    //    lcd.setCursor(0, 1);
    //    lcd.print(_command);
    //    lcd.setCursor(_command.length() + 1, 1);
    //    lcd.print(L"No");
    //    _delay(2);

  }

}

 

pwal
Offline
Зарегистрирован: 17.04.2016

это в сериал выдает 

это только процентов 20 кода

переменную _id заменил на  _idMega 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

pwal пишет:

это только процентов 20 кода

переменную _id заменил на  _idMega 

Код длинный можешь выкладываь -- там есть такая функция свернуть - и впиши номера строк где происходит ошибка,и для их выделения.

pwal
Offline
Зарегистрирован: 17.04.2016

p.masyukov пишет:

pwal пишет:

это только процентов 20 кода

переменную _id заменил на  _idMega 

Код длинный можешь выкладываь -- там есть такая функция свернуть - и впиши номера строк где происходит ошибка,и для их выделения.

void _com_bas( String _com, int a) { 

ошибка в строке 08 

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

pwal пишет:

умнее будете выглядеть ....

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

pwal пишет:

согласен что немного ошибся при написании в пост 

Код надо копипастить, а не "немного ошибатьсяЭ, я Вам это уже посоветовал, в ответ получил хамство.

pwal пишет:

Сути не меняет..

Если для Вас нет разницы между тем кодом, что реально исполняется и каким-то некомпилируемым бредом, то сами ищите свои траблы - смотреть на код который даже не компилируется - Вы нас тут за идиотов держите?

 

pwal
Offline
Зарегистрирован: 17.04.2016

ЕвгенийП пишет:

pwal пишет:

умнее будете выглядеть ....

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

pwal пишет:

согласен что немного ошибся при написании в пост 

Код надо копипастить, а не "немного ошибатьсяЭ, я Вам это уже посоветовал, в ответ получил хамство.

pwal пишет:

Сути не меняет..

Если для Вас нет разницы между тем кодом, что реально исполняется и каким-то некомпилируемым бредом, то сами ищите свои траблы - смотреть на код который даже не компилируется - Вы нас тут за идиотов держите?

 

Троль - изыди на**р

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

pwal пишет:

Троль - изыди на**р

Молчел, если ты так и дальше будешь продолжать общаться, то нахер пошлют именно тебя. Если ты хочешь помощи - проси смиренно, и воздастся тебе.

pwal
Offline
Зарегистрирован: 17.04.2016

))) 

 

a5021
Offline
Зарегистрирован: 07.07.2013

Внимательно посмотрете на рейтинги своих сообщений и рейтинги сообщений т.н. "тролей". Если это не наведет вас ни на какие мысли и вы по прежнему будете считать, что не нужно излагать вопрос в краткой и доходчивой форме, а нужно как можно скорее "загасить" тролей, то вы скорее всего зря здесь теряете время.

pwal
Offline
Зарегистрирован: 17.04.2016

Я тут ради знаний , а не рейтингов. 

И путнего походу тут мало. Ибо "папки" Ардуино одни, везде бывали , только спросить не у кого. И сплошные понты

Jeka_M
Jeka_M аватар
Онлайн
Зарегистрирован: 06.07.2014

DIYMan пишет:

Молчел, если ты так и дальше будешь продолжать общаться, то нахер пошлют именно тебя. Если ты хочешь помощи - проси смиренно, и воздастся тебе.

Дык это хамло уже не в первый раз так общается, видать родители плохо воспитали - http://arduino.ru/forum/obshchii/hs1101-hs1101lf-datchik-vlazhnosti

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

Я ту тему пропустил.

Ну, в принципе, с мальчиком всё понятно. Ник бы не забыть, чтобы случайно чем-нибудь не помочь, а сразу на любой вопрос отвечать адекватно - "пшелнах".

a5021
Offline
Зарегистрирован: 07.07.2013

Jeka_M пишет:

Дык это хамло уже не в первый раз так общается, видать родители плохо воспитали - http://arduino.ru/forum/obshchii/hs1101-hs1101lf-datchik-vlazhnosti

Какой неожиданный разворот -- непризнанный гений обращается за помощью к бездарям. Вторично.

pwal
Offline
Зарегистрирован: 17.04.2016

ЕвгенийП пишет:

Я ту тему пропустил.

Ну, в принципе, с мальчиком всё понятно. Ник бы не забыть, чтобы случайно чем-нибудь не помочь, а сразу на любой вопрос отвечать адекватно - "пшелнах".

Ну видать тебе не привыкать на х**х бывать то)))) 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Всё, по ходу гопник уже никогда ответа не получит на свои вопросы :)

a5021
Offline
Зарегистрирован: 07.07.2013

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

pwal
Offline
Зарегистрирован: 17.04.2016

a5021 пишет:

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

Впринципе как и в основном все  темы на этом говнофоруме))

a5021
Offline
Зарегистрирован: 07.07.2013

Наверное от особенностей личного восприятия зависит. Я нахожу этот форум вполне себе интересным.

Navigator
Navigator аватар
Offline
Зарегистрирован: 26.01.2016

Мужики! Такие, как pwal смелые только когда находятся далеко, общаясь через интернет, теряют чувство реальности, а в жизни очконавты. Вот мне бы его сейчас в боксерский ринг, я бы ему и печень пробил  и сотряс мозга устроил!!!! А вот когда он во дворе огребется от прохожего, которого по привычке пошлет на три буквы, будет ворчать, как же так, я такой остроумный и меня побили.

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

Pwal! Понимаешь ли ты, что задавая тупой вопрос, типа первого поста в теме, ты, по определению, сразу ставишь себя в униженное положение глуповатого просителя? Это дает грамотным участникам право глумиться - как угодно.

То есть самим фактом вопроса, если ты не извинился заранее за тупизну вопроса, ты уже унижен под плинтус, ясно?

Ведь ясно, что форум ты читал, и что ЕвгенийП - один из самых квалифицированных и адекватных людей на форуме ты уже знал, а в говно ты полез, просто потому, что конченый мудак, так понятно?

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

a5021
Offline
Зарегистрирован: 07.07.2013

wdrakula пишет:
Если тебе не ясно, что ты просто сожрал память и где-то залез в область константы - тебе вообще нехера в програмировании делать.

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

Все правильно, либо за индексы ушел (вариант -- "дикий" указатель), либо стек наехал на область ОЗУ, где эти строки лежали. Разумеется, вряд ли кому-то будет интересно искать, где это конкретно происходит.

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

Добавлю.А если не стуктурировать программу , не использовать принцип модульности. То искать ошибки в программе становится еще веселее.Причем всем кто это попытается сделать.

pwal
Offline
Зарегистрирован: 17.04.2016

А помог тупой откат с версии 1.6.12 на 1.6.9 

и все нормально заработало.

Спасибо всем адекватам. 

Расходимся.

Araris
Offline
Зарегистрирован: 09.11.2012

pwal пишет:

Расходимся.