обьясните дураку о функции которая ничего не возвращает?!
- Войдите на сайт для отправки комментариев
Чт, 03/06/2021 - 15:59
Прошу помощи, как заставить это работать?
#include <OneWire.h> OneWire ds(5); float temperature; byte data[2]; void setup() { Serial.begin(9600); // put your setup code here, to run once: } void temp() { byte data[2]; ds.reset(); ds.write(0xCC); ds.write(0x44); delay(1000); ds.reset(); ds.write(0xCC); ds.write(0xBE); data[0] = ds.read(); data[1] = ds.read(); float temperature = ((data[1] << 8) | data[0]) * 0.0625; } void loop() { Serial.println(temperature); delay(1000); }
Код кривой на редкость. У тебя создается глобальная переменная temperature в которую void temp() пытается записать значение. Это как гланды через анус удалять. Проще сделать возвращаемое значение в типе float
UPD: да и оно вообще работать не должно, у тебя в функции локальная float с тем же именем объявляется))
Для начала неплохо бы сформулировать, что в Вашем понимании означает "работать".
Вы, кстати, в курсе, что у Вас две переменные, носящие имя temperature: в 3-й и в 24-й строках?
До этого вопроса еще очередь не дошла))
это история не про "функцию, которая ничего не возвращает", а о "бесполезной функции, которая нигде в программе не используется"
Зеленый светодиод горит? Горит. Значит, программа работает.
Зато с частотой 1 Гц с порт выводится случайный мусор
Для начала неплохо бы сформулировать, что в Вашем понимании означает "работать".
ну как учили : Работа = Сила х Путь . Ардуина лежит неподвижно на столе ,значит путь равен 0 , вот и не работает ничего
На мой любительский взгляд, рецепт видится таким:
1. убрать строку 3
2. в функции temp() вместо возвращаемого void указать float.
3. В функции сделать return (что там в расчетах локального temperature)
4. в лупе в сериалпринт выводить temp()
5. тут должен быть PROFIT
На мой любительский взгляд, рецепт видится таким:
рецептов тут много...
есть обычный код с инета, мне надо чтобы с этого датчика значение float temperature; записывалось в сим800, типа удаленный температурный датчик.
информацию с датчика надо вставить сюда mySerial.println(temperature);
информацию с датчика надо вставить сюда mySerial.println(temperature);
э. полегче на поворотах...
кому надо? Тебе надо - ты и вставляй. Мы можем подсказать как, но дописывать код за тебя никто не будет.
какие все быстрые...
А в армию не думал сходить, вместо всей этой трихомудии?
я хочу чтобы мне оьбяснили как это сделать
я хочу чтобы мне оьбяснили как это сделать
Ща, Дет проснется, объяснит))
как заставить эту переменную
float
temperature;
отдавать мне значения в разные куски кодаА в армию не думал сходить, вместо всей этой трихомудии?
не, это не студент, это "пчеловод". но это еще хуже :)
как заставить эту переменную
float
temperature;
отдавать мне значения в разные куски кодапочитать учебник по С++, раздел функции
Спасибо, однако.
Ща, Дет проснется, объяснит))
эт прям в точку :) прошлая дискуссия ТС закончилась тем. что он Деда наХ послал
вы тока тролить умеете...
вот тут немного и все по русски, просвещайся
https://ravesli.com/urok-12-funktsii-i-return/
вы тока тролить умеете...
не угадал, мы много что умеем
Vladon - до того как ты начал хамить - тебе дали массу советов. в том числе в #9 прям-таки пошаговый рецепт. как поправить проблему. Попробуй включить мозг.
Ясно, сам розберусь
как заставить эту переменную
float
temperature;
отдавать мне значения в разные куски кодаОткройте любой учебник по С++ и ознакомьтесь с главой "область видимости переменных". Если после ВНИМАТЕЛЬНОГО изучения материала останутся вопросы, тут ответят почти без сарказма и глума. Если кратко, вы создаете ДВЕ абсолютно РАЗНЫХ переменных, и пытаетесь из них сложить слово СЧАТЬЕ
сейчас ознакомлюсь
Ясно, сам розберусь
серьезно, обрати внимание на ответ 9
И ссылки на учебник тоже посмотри.
если выводить темп оно и так пашет, в том и смысл чтобы брать значения с переменной
если выводить темп оно и так пашет
Ага, и что показывает? ))
Vladon, не начинай снова. Вроде закончили по хорошему?
Сначала изучи то, что тебе посоветовали - а только потом спрашивай. Думаю, что до завтра новых вопросов тебе задавать не стоит.
если выводить темп оно и так пашет, в том и смысл чтобы брать значения с переменной
Изучи раздел учебника про область видимости, а потом ответь себе на вопрос - что делает слово float в строке 24?
если выводить темп оно и так пашет, в том и смысл чтобы брать значения с переменной
Возьми паузу в срачах на этом форуме, почитай Шилдта или тут: https://ravesli.com/uroki-cpp/
Но не спеши это сделать за неделю
Мне вот всегда интересно было : почему значение переменной должно записываться в модем, сетевой чип и пр. Почему не сразу в смс на телефоне или в файл на компьютере?
ничего не понял но очень интересно, принято решение поменять датчик, на тот который напрямую будет давать значения напрямую с использованием библиотек, обьявил переменную и используй где хочешь, датчик типа AM2032 и подобные.
все тему закрывайте.
Эх, в одном шаге от решения...
так я ж не програмист. Никто ж не признается говорят книгу читай)
И всё же , если передумаешь, посмотри #26 . Да и в других постах тоже полезная информация
так я ж не програмист.
А что вы потеряли на форуме программистов? Ваш раздел - платные услуги. Раздел "песочница" для начинающих программистов-любителей, как я. Если не хотите быть программистом - goto в заказчики в платном разделе
так я ж не програмист...
вот бы Вань но твой бы Ян дураку бы моему (с) Т.Шаов
прошлая дискуссия ТС закончилась тем. что он Деда наХ послал
И правильно сделал
И правильно сделал
Ты зарегистрировался чтобы эту хрень написать?))) Еще, небось, ник себе долго придумывал)))
Мои 5 копеек:
Функция, которая ничего не возвращает, называется просто - процедура ))
Мои 5 копеек:
Функция, которая ничего не возвращает, называется просто - процедура ))
Только не в С++ )) Тут процедур нету, только функции
И правильно сделал
Чойта?
Потому что я почитал от Вас никогда никакой помощи только издевательство над новичками
Бывает... Иногда я чуствую себя карекционным педагогом, иногда нет. Даже, я бы сказал, бОльшую часть времени - нет.
Потому что я почитал от Вас никогда никакой помощи только издевательство над новичками
Большинство новичков обладают настолько низким уровнем, что просто не способны не только воспользоваться той помощью, которую им оказывают, но даже заметить ее. Поэтому упорно считают, что им "не помогают" или "помогают неправильно".
Я все равно, сделал что от меня полагалось и впиндюрил два датчика, это ещё лучше)))) так что читайте морали дальше, от зла на вас интерес что то делать появляется, не знал что программисты такого высокого мнения о себе...
Да помощи от Вас я так понял не дождемся, патамушта тут диванные екперты походу собрались.
Розкажу историю: я с 2006 года сижу на форумах, что то у людей спрашиваю, вот одни из тех: гитразм.ру, радиокот, схем.нет, 4пда, фольцвагенклуб....и подобные, по сегодняшний день там что то пишу, то такого жёсткого отношения к новичкам я не встречал. Кстати я не пчеловод, я инженер по ремонту радиоаппаратуры, хотя работаю в СЦ и восстанавливаю цифровую технику.
Vladon - ты меня прости. но я удивляюсь. как тебе доверяют ремонт аппаратуры... хотя если ремонт - это прикручивание оторванных ручек к чемоданам с техникой - то может ты и справляешься.
после того как тебе практически все обьяснили в первых сообщениях и оставалось только чуть поменять свой код... ты струсил и побежал искать другой датчик. похоже. что за долгие года на разных форумах своя думалка у тебя полностью атрофировалась и теперь ты умеешь только копировать чужие рецепты из интернета...