В чем ошибка?

Mnj
Offline
Зарегистрирован: 28.02.2019

  Пытаюсь работать с nrf24l01, но выдает ошибку "initializer fails to determine size of 'text1' "

 Вот код  

  float t = dht.readTemperature();
  int h = dht.readHumidity();

  char text1[] = t;
  char text2[] = h;
  radio.write(&text1, sizeof(text1));
  radio.write(&text2, sizeof(text2));
  delay(2000);

    

 

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

  float t = dht.readTemperature();
  int h = dht.readHumidity();

  char text1[] = t;
  char text2[] = h;
  radio.write(&text1, sizeof(text1));
  radio.write(&text2, sizeof(text2));
  delay(2000);

 

:)

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

Mnj пишет:

  float t = dht.readTemperature();
  int h = dht.readHumidity();

  char text1[] = t;
  char text2[] = h;
  radio.write(&text1, sizeof(text1));
  radio.write(&text2, sizeof(text2));
  delay(2000);

 

:)

А если ещё раз почитать и вставить таки в с номерами строк?

А то пока я могу сказать лишь так:

1.
В строке №ХЗ Вы зачем-то пытаетесь проинициализировать массив символов значением переменной типа float. Что Вы при этом имеете в виду не понимает никто (уверен, включая Вас). Не понимает и компилятор. Вот он Вам об этом вежливо и сообщает.

2.
После этого, в строке №ХЗ Вы опять же зачем-то пытаетесь проинициализировать массив символов, но на этот раз значением переменной типа int. Это не намного более понятный ход, чем в прошлый раз, и компилятор опять бедняга не понимает чего от него хотят. Вот и поругивается слегка.

b707
Offline
Зарегистрирован: 26.05.2017

Mn - судя по коду, язык  С вы не знаете совсем. Начните с чтения учебника.

Что касается конкретных ошибок - обратите внимание, что ваши  переменные t и h описаны как int и float, а вовсе не символ

Mnj
Offline
Зарегистрирован: 28.02.2019
  float t = dht.readTemperature(); 
  int h = dht.readHumidity(); 
  float text1[] = t;
  int text2[] = h;
  radio.write(&text1, sizeof(text1));
  radio.write(&text2, sizeof(text2));
  delay(2000);

Все та же ошибка

b707
Offline
Зарегистрирован: 26.05.2017

MNJ  Вы будете вслепую пробовать строки переставлять? - - "методом тыка" программы не пишут.

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

Mnj пишет:

  float t = dht.readTemperature(); 
  int h = dht.readHumidity(); 

  float text1[] = t;
  int text2[] = h;
  radio.write(&text1, sizeof(text1));
  radio.write(&text2, sizeof(text2));
  delay(2000);

Та же ошибка

Те же комментарии

1.
В строке №4 Вы зачем-то пытаетесь проинициализировать массив типа float значением переменной типа float. Что Вы при этом имеете в виду не понимает никто (уверен, включая Вас). Не понимает и компилятор. Вот он Вам об этом вежливо и сообщает.

2.
После этого, в строке №5 Вы опять же зачем-то пытаетесь проинициализировать массив типа int, но на этот раз значением переменной типа int. Это не намного более понятный ход, чем в прошлый раз, и компилятор опять бедняга не понимает чего от него хотят. Вот и поругивается слегка.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Нет, в 4 и 5 уже массивы другого типа. Не char

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

Во, блин, затейник! Ну, ладно, сейчас заменю типы. Фразы всё равно остаются верными :)