Почистил скетч примера работы с DS18B20 из библы OneWire..

AlexZR
Offline
Зарегистрирован: 08.02.2016

значит я прав ))))

AlexZR
Offline
Зарегистрирован: 08.02.2016

разобрался, все работает как я хочу! благодарю всех за участие!
 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

проверил этим кодом, у меня всё работает )))
 

#include <OneWire.h>
OneWire  ds(4);  //D2
byte addr[8] = {0x28, 0xEC, 0xF0, 0xD5, 0x04, 0x00, 0x00, 0xF2};
//28:EC:F0:D5:4:0:0:F2: адрес моего датчика

volatile int temperature;
unsigned long timing;

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

void loop(void) {

  if (millis() - timing > 1000)
  {
    timing = millis();
    getTemperature();
    Serial.print("  Temperature = ");
    Serial.println(temperature);
  }
}

void getTemperature()
{
  static bool flagDall = true; // Признак операции
  if (flagDall)
  {
    ds.reset();
    ds.write(0xCC); // Обращение ко всем датчикам
    ds.write(0x44); // Команда на конвертацию
  }
  else
  {
    int temp;
    ds.reset();
    ds.select(addr);
    ds.write(0xBE);                      // Считывание значения с датчика
    temp = (ds.read() | ds.read() << 8); // Принимаем два байта температуры
    temperature = round((float)temp / 16.0);
  }
  flagDall = !flagDall; // Инверсия признака операции для следующей итерации
}
 
  Temperature = 27
  Temperature = 27
  Temperature = 27
  Temperature = 31
  Temperature = 31
  Temperature = 32
  Temperature = 32
  Temperature = 33
  Temperature = 33
  Temperature = 33
  Temperature = 33

 

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
проверил этим кодом, у меня всё работает )))

Виктор, у меня тоже заработало, была одна ошибка в адресе )))

AlexZR
Offline
Зарегистрирован: 08.02.2016

еще одна хотелка, для полного счастья ))) как вывести ошибку при обрыве провода или неисправности датчика через  сериалпринт ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

ua6em пишет:
проверил этим кодом, у меня всё работает )))

Виктор, у меня тоже заработало, была одна ошибка в адресе )))

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

AlexZR
Offline
Зарегистрирован: 08.02.2016

да, это было бы идеально! но сам  это не сделаю точно )))

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

AlexZR пишет:

да, это было бы идеально! но сам  это не сделаю точно )))

в сетапе добавить

  ds.reset();     // сброс шины
  ds.write(0x7F); // точность 0,5гр = 1F; 0,25гр = 3F; 0,125гр = 5F; 0,0625гр = 7F;
  ds.search(addr); // определение адреса датчика

Вторая строка - по желанию

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

да, это было бы идеально! но сам  это не сделаю точно )))

без адреса решение в этой теме предложил Пётр, работает, надо всю тему перечитать )))

#include <OneWire.h>
OneWire  ds(4);  //D2
//byte addr[8] = {0x28, 0xEC, 0xF0, 0xD5, 0x04, 0x00, 0x00, 0xF2};
//28:EC:F0:D5:4:0:0:F2: адрес моего датчика

volatile int temperature;
unsigned long timing;

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

void loop(void) {

  if (millis() - timing > 1000)
  {
    timing = millis();
    getTemperature();
    Serial.print("  Temperature = ");
    Serial.println(temperature);
  }
}

void getTemperature()
{
  static bool flagDall = true; // Признак операции
  if (flagDall)
  {
    ds.reset();
    ds.write(0xCC); // Обращение ко всем датчикам
    ds.write(0x44); // Команда на конвертацию
  }
  else
  {
    int temp;
    ds.reset();
//    ds.select(addr);
    ds.write(0xCC);                      // Обращение ко всем датчикам
    ds.write(0xBE);                      // Считывание значения с датчика
    temp = (ds.read() | ds.read() << 8); // Принимаем два байта температуры
    temperature = round((float)temp / 16.0);
  }
  flagDall = !flagDall; // Инверсия признака операции для следующей итерации
}

 

AlexZR
Offline
Зарегистрирован: 08.02.2016

v258 пишет:

AlexZR пишет:

да, это было бы идеально! но сам  это не сделаю точно )))

в сетапе добавить

  ds.reset();     // сброс шины
  ds.write(0x7F); // точность 0,5гр = 1F; 0,25гр = 3F; 0,125гр = 5F; 0,0625гр = 7F;
  ds.search(addr); // определение адреса датчика

Вторая строка - по желанию

Круто! спасибо! теперь бы закрыть вопрос с ошибкой датчика, и все )))

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

AlexZR пишет:

все знают только дураки...

Насчёт дураков (что они знают, а что - нет) Вам, безусловно, виднее.

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

AlexZR
Offline
Зарегистрирован: 08.02.2016

Евгений пишет:
Насчёт дураков (что они знают, а что - нет) Вам, безусловно, виднее.

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

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
без адреса решение в этой теме предложил Пётр, работает, надо всю тему перечитать )))

да, и так работает, спасибо!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

ua6em пишет:
без адреса решение в этой теме предложил Пётр, работает, надо всю тему перечитать )))

да, и так работает, спасибо!

попробуй этот код, у меня моросит, но датчик на соплях
 

// определение адреса датчика в сетапе, установка битности датчика

#include <OneWire.h>
OneWire  ds(4);  // D2 (ESP8266)
byte addr[8];    // = {0x28, 0xEC, 0xF0, 0xD5, 0x04, 0x00, 0x00, 0xF2};
// 28:EC:F0:D5:4:0:0:F2: адрес моего датчика
byte isok[8];

volatile float temperature;
unsigned long timing;

void setup(void)
{
  Serial.begin(115200);
  ds.reset();     // сброс шины
  ds.write(0x7F); // точность 0,5гр = 1F; 0,25гр = 3F; 0,125гр = 5F; 0,0625гр = 7F;
  ds.search(addr); // определение адреса датчика
}

void loop(void) {

  if (millis() - timing > 1000)
  {
    timing = millis();
    getTemperature();
    Serial.print("  Temperature = ");
    Serial.println(temperature, 3);
  }
}

void getTemperature()
{
  isok[0] = 0;
  ds.reset();                  // сброс шины
  ds.search(isok);             // определение адреса датчика (что подключен)
  if (isok[0] == 0x28) {
    static bool flagDall = true; // Признак операции
    if (flagDall)
    {
      ds.reset();
      ds.write(0xCC); // Обращение ко всем датчикам
      ds.write(0x44); // Команда на конвертацию
    }
    else
    {
      int temp;
      ds.reset();
      ds.select(addr);
      ds.write(0xBE);                      // Считывание значения с датчика
      temp = (ds.read() | ds.read() << 8); // Принимаем два байта температуры
      temperature = (float)temp/16.0; //round((float)temp / 16.0);
    }
    flagDall = !flagDall; // Инверсия признака операции для следующей итерации
  } else {
    Serial.println("Датчик не подключен или неисправен");
  }
}

 

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
попробуй этот код, у меня моросит, но датчик на соплях

что то не то, у меня запаян непосредственно на esp, но эффект тот же что и у вас..

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

ua6em пишет:
попробуй этот код, у меня моросит, но датчик на соплях

что то не то, у меня запаян непосредственно на esp, но эффект тот же что и у вас..

явный косяк в коде, так как я не настоящий сталевар только предполагаю в чём проблема но как обойти не понимаю
код поста #222 видимо решит проблему

AlexZR
Offline
Зарегистрирован: 08.02.2016

еще один не понятный момент, одна прошивка, один и тот же датчик, на arduini nano показывает 26 градусов, на ESP32 28 градусов, может кто объяснит, почему так ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

еще один не понятный момент, одна прошивка, один и тот же датчик, на arduini nano показывает 26 градусов, на ESP32 28 градусов, может кто объяснит, почему так ?

а на esp от какого пина питание даёшь? 3.3V?

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
а на esp от какого пина питание даёшь? 3.3V?

нет, 5 вольт, нужно от 3.3 вольта ?

запитал от 3.3, все сравнялось, спасибо за подсказку!

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

Подогревается от чего-то датчик.

Математика одна, что в AVR, что в ESP. Если контрольная сумма не даёт повода усомниться (проверяется) в истинности данных, то искать причину нужно на стороне датчика.
А коли CRC не контролируете, то может и over 9000C вылезти.
Хотя, некоторые проблемы на ESP-шке с питанием периферии от слабенького LDO на 3.3V были...

AlexZR
Offline
Зарегистрирован: 08.02.2016

поторопился, тоже самое разница 2 градуса и от питания 3.3 вольта (((

как найти причину разницы ?
 

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

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

AlexZR
Offline
Зарегистрирован: 08.02.2016

bwn пишет:
Для начала, поместить их в одинаковые условия - коробочка, на дно вата или пенопласт, крышка и желательно чтобы корпуса соприкасались, замер проводить через пару минут после размещения в коробке. По его результатам делать выводы. Датчики на выносных шлейфах.

датчик один и тот же, т.е. один, условия одинаковые..

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

После того, как Вы его покрутили, условия уже не одинаковые. Сходимость между двумя+  датчиками я смог получить только в термостате (коробке). Дело Ваще, убеждать не буду.

AlexZR
Offline
Зарегистрирован: 08.02.2016

bwn пишет:

После того, как Вы его покрутили, условия уже не одинаковые. Сходимость между двумя+  датчиками я смог получить только в термостате (коробке). Дело Ваще, убеждать не буду.

повторюсь, датчик у меня один, две платы ардуино нано и esp32, код один и тот же, вставляю датчик в ардуино 26 градусов, вставляю в esp32 28 градусов...

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

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

bwn пишет:

После того, как Вы его покрутили, условия уже не одинаковые. Сходимость между двумя+  датчиками я смог получить только в термостате (коробке). Дело Ваще, убеждать не буду.

повторюсь, датчик у меня один, две платы ардуино нано и esp32, код один и тот же, вставляю датчик в ардуино 26 градусов, вставляю в esp32 28 градусов...

рисуйте схему подключения, внутри там цифра, значит датчик что-то греет, так как время между запросами одинаковое 1 секунда, можно попробовать в коде увеличить время между запросами к примеру до 3 секунд (на ESP) и посмотреть

AlexZR
Offline
Зарегистрирован: 08.02.2016

sadman41 пишет:
Тут только следственный эксперимент поможет - чтобы кто-то сторонний повторил с вашим фрагментом кода.

где бы его найти )))

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
рисуйте схему подключения, внутри там цифра, значит датчик что-то греет, так как время между запросами одинаковое 1 секунда, можно попробовать в коде увеличить время между запросами к примеру до 3 секунд (на ESP) и посмотреть

увеличивал время опроса с 1 до 10 секунд, разницы нет..

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

Публикуйте короткий тестовый скетч, на котором проявляется проблема. Будет время - проверю.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а резистор подтяжки от 3 вольт или 5?

AlexZR
Offline
Зарегистрирован: 08.02.2016

sadman41 пишет:
Публикуйте короткий тестовый скетч, на котором проявляется проблема. Будет время - проверю.

да, пожалуйста!

#include <OneWire.h>
OneWire  ds(15);
byte addr[8];
uint8_t temperature;
unsigned long timing;

void setup(void)
{
  Serial.begin(57600);

  ds.reset();      // сброс шины
  ds.write(0x1F);  // точность 0,5гр = 1F; 0,25гр = 3F; 0,125гр = 5F; 0,0625гр = 7F;
  ds.search(addr); // определение адреса датчика
}

void loop(void) {
  if (millis() - timing > 2000)
  {
    timing = millis();
    getTemperature();
    Serial.print("Temperature = ");
    Serial.println(temperature);
  }
}

void getTemperature()
{
  static bool flagDall = true; // Признак операции
  if (flagDall)
  {
    ds.reset();
    ds.write(0xCC); // Обращение ко всем датчикам
    ds.write(0x44); // Команда на конвертацию
  }
  else
  {
    int temp;
    ds.reset();
    ds.select(addr);
    ds.write(0xBE);                             // Считывание значения с датчика
    temp = (ds.read() | ds.read() << 8) / 16.0; // Принимаем два байта температуры
    temperature = round(temp);
  }
  flagDall = !flagDall; // Инверсия признака операции для следующей итерации
}

 

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
а резистор подтяжки от 3 вольт или 5?

пробовал оба варианта, разницы нет..

т.е. запитать датчик от 5 вольт, а резистор на 3.3 ? так не пробовал...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

ua6em пишет:
а резистор подтяжки от 3 вольт или 5?

пробовал оба варианта, разницы нет..

т.е. запитать датчик от 5 вольт, а резистор на 3.3 ? так не пробовал...

нет, если ESP всё запитываем от 3.3 вольта
проверил свой код, всё ТОРТ )))

ESP
  Temperature = 26.938
  Temperature = 26.938
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 27.000
  Temperature = 26.938
 
  NANO
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.812
  Temperature = 26.875
  Temperature = 26.875

AlexZR
Offline
Зарегистрирован: 08.02.2016

ua6em пишет:
нет, если ESP всё запитываем от 3.3 вольта
проверил свой код, всё ТОРТ )))

Виктор, мой проверьте, пожалуйста !

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

ua6em пишет:
нет, если ESP всё запитываем от 3.3 вольта
проверил свой код, всё ТОРТ )))

Виктор, мой проверьте, пожалуйста !

NANO

Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26

ESP
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26
Temperature = 26


AlexZR
Offline
Зарегистрирован: 08.02.2016

а какой пин на ESP32 вы используете ?

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

AlexZR пишет:

sadman41 пишет:
Публикуйте короткий тестовый скетч, на котором проявляется проблема. Будет время - проверю.

да, пожалуйста!

#include <OneWire.h>
OneWire  ds(15);
byte addr[8];
uint8_t temperature;
unsigned long timing;

void setup(void)
{
  Serial.begin(57600);

  ds.reset();      // сброс шины
  ds.write(0x1F);  // точность 0,5гр = 1F; 0,25гр = 3F; 0,125гр = 5F; 0,0625гр = 7F;
  ds.search(addr); // определение адреса датчика
}

void loop(void) {
  if (millis() - timing > 2000)
  {
    timing = millis();
    getTemperature();
    Serial.print("Temperature = ");
    Serial.println(temperature);
  }
}

void getTemperature()
{
  static bool flagDall = true; // Признак операции
  if (flagDall)
  {
    ds.reset();
    ds.write(0xCC); // Обращение ко всем датчикам
    ds.write(0x44); // Команда на конвертацию
  }
  else
  {
    int temp;
    ds.reset();
    ds.select(addr);
    ds.write(0xBE);                             // Считывание значения с датчика
    temp = (ds.read() | ds.read() << 8) / 16.0; // Принимаем два байта температуры
    temperature = round(temp);
  }
  flagDall = !flagDall; // Инверсия признака операции для следующей итерации
}

Уж не знаю, что там у Вас на ESP или ещё где-то, но здесь написано что-то совершенно невразумительное и работать это не должно нигде и никак. Вы сами-то этот код запускали? Именно этот? Можно поинтересоваться, что он Вам выдавал в сериал?

Ошибки на каждом шагу. Давайте потихоньку начнём разгребать.

1. Ваша getTemperature работает по-разному при чётном и нечётном обращениях. При чётном (считая с нуля) обращении она только запускает процесс, а при нечётном считывает уже готовую температуру. Так? Тогда зачем Вы печатаете её результат в строке №21-22 после каждого обращения? Что Вы надеетесь увидеть после чётных обращений?

2. Функция read в OneWire возвращает однобайтовое значение ( uint8_t read(void); ) Что Вы надеетесь получить, сдвигая это значение на 8 бит влево в строке №41?

Ещё раз вопрос, не думайте, что он был риторическим - Вы сами запускали этот код? Выложите пожалуйста протокол, который он пишет в сериал.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AlexZR пишет:

а какой пин на ESP32 вы используете ?

ESP32 пин 4

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

Уж не знаю, что там у Вас на ESP или ещё где-то, но здесь написано что-то совершенно невразумительное и работать это не должно нигде и никак. Вы сами-то этот код запускали? Именно этот? Можно поинтересоваться, что он Вам выдавал в сериал?

Ошибки на каждом шагу. Давайте потихоньку начнём разгребать.

1. Ваша getTemperature работает по-разному при чётном и нечётном обращениях. При чётном (считая с нуля) обращении она только запускает процесс, а при нечётном считывает уже готовую температуру. Так? Тогда зачем Вы печатаете её результат в строке №21-22 после каждого обращения? Что Вы надеетесь увидеть после чётных обращений?

2. Функция read в OneWire возвращает однобайтовое значение ( uint8_t read(void); ) Что Вы надеетесь получить, сдвигая это значение на 8 бит влево в строке №41?

Ещё раз вопрос, не думайте, что он был риторическим - Вы сами запускали этот код? Выложите пожалуйста протокол, который он пишет в сериал.

ТС видимо не сможет объяснить, придётся мне? )))

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

И да, AlexZR, ещё хотел спросить (прошу прощения, если Вы про это писали выше - неохота всю тему перерывать) - Вы ведь явно неуверенно всем этим добром пользуетесь. Тогда почему OneWire и трах "вручную"? Почему не пользуетесь готовыми библиотеками для данного датчика?

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

ua6em пишет:

ТС видимо не сможет объяснить

Чего он не сможет? Сказать запускал ли он этот код и скопипастить содержимое монитора порта? 

AlexZR
Offline
Зарегистрирован: 08.02.2016

ЕвгенийП пишет:
Ещё раз вопрос, не думайте, что он был риторическим - Вы сами запускали этот код? Выложите пожалуйста протокол, который он пишет в сериал.

ну код как бы не мой, взят из этой ветки сообщение 282, код как бы работает.. хотя в протеусе нет! если знаете, подскажите как правильно сделать ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

ua6em пишет:

ТС видимо не сможет объяснить

Чего он не сможет? Сказать запускал ли он этот код и скопипастить содержимое монитора порта? 

так я Вам его выложил, и на ESP8266 и на ESP32 и на Nano всё работает...
а уж, что это в рамках нарушения правил С так Дед и озвучивал, лживый Ваш С... )))

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

AlexZR пишет:
если знаете, подскажите как правильно сделать ?
А что, то, что я написал в пунктах 1 и 2 в посте #338 - это не подсказка? Ну, тогда не знаю даже.

AlexZR
Offline
Зарегистрирован: 08.02.2016

ЕвгенийП пишет:
И да, AlexZR, ещё хотел спросить (прошу прощения, если Вы про это писали выше - неохота всю тему перерывать) - Вы ведь явно неуверенно всем этим добром пользуетесь. Тогда почему OneWire и трах "вручную"? Почему не пользуетесь готовыми библиотеками для данного датчика?

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

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

ua6em пишет:
Nano всё работает...

Т.е. Вы хотите сказать, что код, который я процитировал в #338 печатает температуру только после её чтения и вообще, с вообще, мои два пункта - бред?

Ну, тогда я просто густо краснею и с позором убираюсь из темы :-(

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

AlexZR пишет:
если знаете, подскажите как правильно сделать ?
А что, то, что я написал в пунктах 1 и 2 в посте #338 - это не подсказка? Ну, тогда не знаю даже.

ТСу этого не понять...
можно конечно посмотреть, чего там компилятор сделал, а так конечно в идеале надо две временные переменные типа int И С НИМИ РАБОТАТЬ...
мой хрустальный шар подсказывает, что компилятор такую переменную и создаёт...

AlexZR
Offline
Зарегистрирован: 08.02.2016

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

ua6em пишет:
Nano всё работает...

Т.е. Вы хотите сказать, что код, который я процитировал в #338 печатает температуру только после её чтения и вообще, с вообще, мои два пункта - бред?

Ну, тогда я просто густо краснею и с позором убираюсь из темы :-(

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Евгений Петрович, Вы правы идеологически, а конкретный код исключение, компилятор его обрабатывает как надо, то-есть зная что приёмником данных есть переменная типа int  он и создаёт код работая с байтами во временных переменных типа int другого объяснения у меня нет