Вопрос о переменных

Вопросы от новичков
Аватара пользователя
Alias
Лейтенант
Сообщения: 476
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Вопрос о переменных

#61

Сообщение Alias » 17.01.2020{, 12:38}

Я, оптимизируя проект, выдергиваю нужные фрагменты и вставляю их в новый проект. В новом проекте создаю две платы с идентичным функционалом, но разными средствами, и, поочередно компилируя, смотрю, какие ресурсы они потребляют. Весьма наглядно получается. Можно смотреть и генерируемый код, но там не всегда можно разобраться.

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#62

Сообщение Tango » 20.11.2020{, 11:52}

av писал(а):
27.07.2018{, 17:03}
Эти галочки нужно ставить тогда когда вы хотите что бы начальное значение переменной было то или иное.
false- устанавливает переменную в 0 (значение для переменной boolean)
true-устанавливает переменную в 1 (значение для переменной boolean)
Я не волшебник, а только учусь, а посему вопрос: какое влияние окажет на выход элемента И значение переменной DowOff, если оно будет установлено, ну например , в false?
переменная.PNG
переменная.PNG (10.44 КБ) 805 просмотров
Отправлено спустя 3 минуты 14 секунд:
На сколько я понимаю, установка для boolean переменной значения 1, выдает логическую единицу, а 0 - логический ноль, Или я не правильно рассуждаю?

Отправлено спустя 1 минуту 54 секунды:
Тогда возникает вопрос ещё один: какое значение(какая величина и т.п.) устанавливается в переменной, когда в чекбоксах переменной boolean пусто?
Специалисты построили "Титаник", дилетант построил ковчег

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 430
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 47
Откуда: Омск

Вопрос о переменных

#63

Сообщение kulibinsvv » 20.11.2020{, 12:25}

Tango писал(а):
20.11.2020{, 11:58}
Тогда возникает вопрос ещё один: какое значение(какая величина и т.п.) устанавливается в переменной, когда в чекбоксах переменной boolean пусто?
При штатном включении питания или сбросе вся оперативная память обнуляется, поэтому переменные по умолчанию имеют значение 0.
Можете провести эксперимент: создайте единственную переменную и выведите её в serial port . В мониторе порта наблюдайте за значением переменной.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#64

Сообщение Tango » 20.11.2020{, 13:01}

kulibinsvv писал(а):
20.11.2020{, 12:25}
При штатном включении питания или сбросе вся оперативная память обнуляется, поэтому переменные по умолчанию имеют значение 0.
Можете провести эксперимент: создайте единственную переменную и выведите её в serial port . В мониторе порта наблюдайте за значением переменной.
Попробовать то можно....Со сбросом всё понятно, всё приходит в 0 или исходное состояние. ПО загрузилось, в чекбоксах пусто...Какую "сторону" примет переменная такого типа? В подвешенном состоянии она быть не может.
Специалисты построили "Титаник", дилетант построил ковчег

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

Вопрос о переменных

#65

Сообщение Nikan » 20.11.2020{, 14:44}

Tango писал(а):
20.11.2020{, 13:01}
Попробовать то можно....Со сбросом всё понятно, всё приходит в 0 или исходное состояние. ПО загрузилось, в чекбоксах пусто...Какую "сторону" примет переменная такого типа? В подвешенном состоянии она быть не может.
если программисту все равно, что будет с переменной, то компилятор про инициализирует ее 0.
бывает и компилятору все равно тогда хз и бардак :D
по этому есть очень хорошее правило объявил переменную - сразу проинициализируй значением

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Вопрос о переменных

#66

Сообщение av » 20.11.2020{, 15:39}

Tango писал(а):
20.11.2020{, 11:58}
Я не волшебник, а только учусь, а посему вопрос: какое влияние окажет на выход элемента И значение переменной DowOff, если оно будет установлено, ну например , в false?
В этом моменте элемент "И" работает как включатель/выключатель. При значении переменной, клеммы 0 элемент "И" не пропустит сигнал с выхода блока "RTC Alarm"
Tango писал(а):
20.11.2020{, 11:58}
На сколько я понимаю, установка для boolean переменной значения 1, выдает логическую единицу, а 0 - логический ноль, Или я не правильно рассуждаю?
У переменной boolean значения выставляются - false, true , а так же в коде для облегчения пишутся значения 0 и 1 вместо длинных буквенных.
Tango писал(а):
20.11.2020{, 11:58}
Тогда возникает вопрос ещё один: какое значение(какая величина и т.п.) устанавливается в переменной, когда в чекбоксах переменной boolean пусто?
Хороший вопрос ! Здесь утверждать не могу как Автор программы FLProg написал код для создания переменной boolean. Допустим что если не указанно значение для этой переменной. Программа назначит адрес ячейки памяти по которому и будет переменная. А какое значение в ней никому не известно при включении микроконтроллера, возможно по умолчанию в нее пишется 0. Этот вопрос нужно адресовать Автору Сергею.

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

Вопрос о переменных

#67

Сообщение Nikan » 20.11.2020{, 15:59}

av писал(а):
20.11.2020{, 15:39}
У переменной boolean значения выставляются - false, true , а так же в коде для облегчения пишутся значения 0 и 1 вместо длинных буквенных.
false, true это для облегчения восприятии в коде компилятор все равно сделает 0 1 ,

[ /quote]
А какое значение в ней никому не известно при включении микроконтроллера, возможно по умолчанию в нее пишется 0. Этот вопрос нужно адресовать Автору Сергею.
[/quote]
он тоже все на откуп компилятора отдал -

bool _gtv4; // bolean --- не инициализирована

void setup()
{
pinMode(13, OUTPUT);

}
void loop()
{
//Плата:1
digitalWrite(13, _gtv4);
}

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#68

Сообщение Tango » 21.11.2020{, 17:33}

av писал(а):
20.11.2020{, 15:39}
Tango писал(а): ↑
Вчера{, 15:58}
На сколько я понимаю, установка для boolean переменной значения 1, выдает логическую единицу, а 0 - логический ноль, Или я не правильно рассуждаю?

У переменной boolean значения выставляются - false, true , а так же в коде для облегчения пишутся значения 0 и 1 вместо длинных буквенных.
Я немного не об этом. Я про напряжения логической 1 и логического нуля.
Ребята, спасибо за ликбез, буду продолжать мучить будильник :D
Специалисты построили "Титаник", дилетант построил ковчег

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Вопрос о переменных

#69

Сообщение av » 21.11.2020{, 17:52}

Tango писал(а):
21.11.2020{, 17:33}
Я немного не об этом. Я про напряжения логической 1 и логического нуля.
Про напряжение в вашем вопросе при обращении ко мне ни слова. Вы спросили про логику. А напряжение логических сигналов будет зависеть от многих факторов, питания МК и сопротивления ключей управляющих пинами.

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#70

Сообщение Tango » 21.11.2020{, 18:07}

av писал(а):
21.11.2020{, 17:52}
Про напряжение в вашем вопросе при обращении ко мне ни слова. Вы спросили про логику. А напряжение логических сигналов будет зависеть от многих факторов, питания МК и сопротивления ключей управляющих пинами.
Т.е. в случае на скрине, не факт, что на выходе Val, блока Nextion Get Attr, будет высокий уровень согласно установке параметра?

Отправлено спустя 49 секунд:
av, можно на ТЫ, я не против...

Отправлено спустя 6 минут 39 секунд:
Я уже создавал пост про дни недели в будильнике...Пытаюсь разобраться как он должен воспринимать изменение дней недели и вкл/выкл по ним...Вот и приходится возвращаться к основам, т.к видимо не все блоки поддаются стандартному описанию работы логики на уровне 1 и 0.
Вложения
Screen Shot 11-21-20 at 10.01 PM.PNG
Специалисты построили "Титаник", дилетант построил ковчег

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Вопрос о переменных

#71

Сообщение Dryundel » 21.11.2020{, 18:25}

av писал(а):
21.11.2020{, 17:52}
А напряжение логических сигналов будет зависеть от многих факторов, питания МК и сопротивления ключей управляющих пинами.
Нк вот, av, запутал человека. Давай. Разгребай теперь.
(Язык мой - враг мой.) :D
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#72

Сообщение Tango » 21.11.2020{, 19:02}

Dryundel писал(а):
21.11.2020{, 18:25}
Ну вот, av, запутал человека. Давай. Разгребай теперь.
Да нет, всё понятно. То что выше 2,5В это логическая 1, то что ниже - 0, допустим при питании 5В. Вот я и хочу разобраться, справедливо ли это условие для блоков FLP. Логику, триггеры и пр....не трогаем, с этими зверьками давно всё понятно, ну и как то понятно с некоторыми элементами NextionHMI. Но к примеру, какая взаимосвязь между цветами кнопки экрана? Если это картинка, то кнопка работает, проверено. А собственные кнопки экрана так же работают или как?
:smile37: Как то я сумбурно объяснил... :D :D
Специалисты построили "Титаник", дилетант построил ковчег

ivansidor012
Рядовой
Сообщения: 58
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 10
Имя: Иван

Вопрос о переменных

#73

Сообщение ivansidor012 » 21.11.2020{, 19:39}

Tango писал(а):
20.11.2020{, 11:58}
То что выше 2,5В это логическая
акб разряжается-разряжается и напряжение уменьшается-уменьшается.... и вдруг 1 стала 0 ??? :)

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Вопрос о переменных

#74

Сообщение av » 21.11.2020{, 20:15}

Tango, Если честно то я в замешательстве :smile37:, что вас беспокоит относительно не установленных чек боксов при создании переменной boolean.
Я в таких случаях тупо проверяю когда не понятки. Допустим создали переменную без установки значения (чекбоксы пусты). Создадим проект переменная на выход светодиода на ардуино нано 13 пин.
Переменная.png
Переменная.png (2.08 КБ) 651 просмотр
загружаем в нанку и смотрим что же там в переменной. Если светодиод горит значит 1(true), а если нет 0(false). Исходя из этого в переменной находится 0. Почему он там оказался ? Переменные проекта хранятся в памяти SRAM и после отключения питания все ячейки этой памяти не сохраняются (сбрасываются). После загрузки скетча в Ардуину и запуска программы переменные инициализируются устанавливаются в то или иное значение. Те которые не проинициализированы остаются с значением 0. Как то так. Если ошибаюсь знатоки поправят.

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#75

Сообщение Tango » 21.11.2020{, 20:19}

ivansidor012 писал(а):
21.11.2020{, 19:39}
Tango писал(а):
20.11.2020{, 11:58}
То что выше 2,5В это логическая
акб разряжается-разряжается и напряжение уменьшается-уменьшается.... и вдруг 1 стала 0 ??? :)
Нет, просто устройство перестает работать :D :D и естественно, как следствие 1 становится 0-ём :smile38:

Отправлено спустя 1 минуту 44 секунды:
av писал(а):
21.11.2020{, 20:15}
Tango, Если честно то я в замешательстве :smile37:, что вас беспокоит относительно не установленных чек боксов при создании переменной boolean.
Да меня не беспокоит это :D Это процесс познания
Отправлено спустя 7 минут 33 секунды:
Tango, Если честно то я в замешательстве :smile37:, что вас беспокоит относительно не установленных чек боксов при создании переменной boolean
Пытаюсь разобраться, что будет твориться на входе элемента, если на него параллельно подана одна переменная, которая периодически меняет свое значение. Я всё о своём.... :D :D :D
Вложения
Screen Shot 11-22-20.PNG
Screen Shot 11-22-20.PNG (11.1 КБ) 649 просмотров
Специалисты построили "Титаник", дилетант построил ковчег

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Вопрос о переменных

#76

Сообщение Dryundel » 21.11.2020{, 20:52}

Tango писал(а):
21.11.2020{, 19:02}
Но к примеру, какая взаимосвязь между цветами кнопки экрана? Если это картинка, то кнопка работает, проверено. А собственные кнопки экрана так же работают или как?
Ничо не понял.
При чем здесь цвет кнопки? Или Вы пытаетесь его как то завязать с напряжением?
Цвет это циферка. В случае с Nextion - 16 битная, так называемое RGB565.
Соответственно для того что бы задать к примеру белый цвет надо отослать на дисплей значение 65535 или в BIN это будет 1111 1111 1111 1111
И с напряжением это никак не завязано.
Tango писал(а):
21.11.2020{, 19:02}
Да нет, всё понятно. То что выше 2,5В это логическая 1, то что ниже - 0, допустим при питании 5В. Вот я и хочу разобраться, справедливо ли это условие для блоков FLP.
А вот здесь, по моему, у Вас вообще каша в голове. Вам какая разница какие напряжения скачут внутри процессора? Блоки на напряжение не влияют. В конечном итоге, на самом низком уровне, по вашей команде бит памяти процессора переключается в 0 или 1. И в одних контроллерах это одни напряжения в других другие.
Ваша задача в результате действий программы, заставить в нужном порядке переключать напряжение на ножках контроллера. Вот здесь утверждение: "То что выше 2,5В это логическая 1, то что ниже - 0" почти справедливо.
Но вам то до этого какое дело?
Если же Вы будете подавать напряжение на цифровой (дискретный вход), плавно изменяя его от 0 до 5 вольт, то при 0 контроллер воспримет это как 0, в какой то момент (на границе перехода) будет неопределенное состояние входа, а потом (выше 2,7V) однозначно зачтет 1.
Логические уровни ArduinoПоказать
5V-logic-levels_fixed.png
5V-logic-levels_fixed.png (4.39 КБ) 636 просмотров
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
nalnik
Подполковник
Сообщения: 1306
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 95
Откуда: Кисловодск
Имя: Александр

Вопрос о переменных

#77

Сообщение nalnik » 21.11.2020{, 21:16}

ivansidor012 писал(а):
21.11.2020{, 19:39}
акб разряжается-разряжается и напряжение уменьшается-уменьшается.... и вдруг 1 стала 0 ???
:smile453: :smile390: :smile453:
Вы с начало почитайте про Фьюзы микроконтроллеров AVR

BODEN - бит, который при выставлении (BODEN=0), будет контролировать за питающим напряжением, на предельно низких напряжениях микроконтроллер может перезапускаться, глючить и так далее. Связан с BODLEVEL.

BODLEVEL. - определяет момент срабатывания детектора уровня питающего напряжения, при снижении напряжения питания ниже уровня, произойдет "перезагрузка" контроллера.

https://cxem.net/beginner/beginner92.php
https://tsibrov.blogspot.com/2018/08/fuse-bits.html
Я хочу быть добрее, но люди сами нарываются.

ivansidor012
Рядовой
Сообщения: 58
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 10
Имя: Иван

Вопрос о переменных

#78

Сообщение ivansidor012 » 22.11.2020{, 02:10}

nalnik,
это к ТС.


"... бит, который при выставлении будет контролировать за питающим напряжением".

Но если уж скопипастили, то проследите чтоб ничего не потерялось :)

Tango
Рядовой
Сообщения: 55
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Вопрос о переменных

#79

Сообщение Tango » 22.11.2020{, 15:29}

Dryundel писал(а):
21.11.2020{, 20:52}
Ничо не понял.
При чем здесь цвет кнопки? Или Вы пытаетесь его как то завязать с напряжением?
Вчера уже было поздно отвечать...спать хотелось))) Я же написал, что сумбурно объяснил...я как та собака, всё понимаю... :D Цвет как таковой не при чём, просто в NextionEditor (NE) есть кнопка Dual state button, назовём её по русски "кнопка с фиксацией". В FLP при установке параметра этой кнопки прописывается состояние кнопки как: "Цвет фона в состоянии 1(bc1)" и "Цвет фона в состоянии 0(bc0)". Я предположил, что если я нажал кнопку на экране, она изменила цвет с одного на другой, то соответственно сменился уровень с 1 на 0 или наоборот и на выходе блока появился соответствующий уровень..Вот это хотел понять, кроме всего прочего.Но это уже выходит за рамки темы. Вот если кнопка или пиктограмма сделаны изображением, типа *.jpg или *.bmp, то такой номер прокатывает на ура, но там понятно, меняется Value, а тк картинки имеют разные номера то всё проходит как надо. Я провел аналогию, хотя на самом деле всё оказывается не так, а как - я и пытаюсь понять...Я ответил на Ваши вопросы? Понятное дело, мне пофиг что творится в МК, я как и многие пытаюсь его заставить работать через FLP, но если я не знаю как работает тот или иной блок, как я МК заставлю работать так, как мне нужно? Вот и задаю, может быть глупые вопросы... :smile37:
Специалисты построили "Титаник", дилетант построил ковчег

Аватара пользователя
Dryundel
Полковник
Сообщения: 2061
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 628
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Вопрос о переменных

#80

Сообщение Dryundel » 22.11.2020{, 18:23}

Tango писал(а):
22.11.2020{, 15:29}
пытаюсь его заставить работать через FLP, но если я не знаю как работает тот или иной блок, как я МК заставлю работать так, как мне нужно? Вот и задаю, может быть глупые вопросы...
Так может с хелпа на блолк начать? И вообще почитать примеры работы с этими блоками от автора.
Ну типа здесь читали?
FLProg + Nextion HMI. Урок 1
FLProg + Nextion HMI. Урок 2
FLProg + Nextion HMI. Урок 3
.
Tango писал(а):
22.11.2020{, 15:29}
в NextionEditor (NE) есть кнопка Dual state button, назовём её по русски "кнопка с фиксацией". В FLP при установке параметра этой кнопки прописывается состояние кнопки как: "Цвет фона в состоянии 1(bc1)" и "Цвет фона в состоянии 0(bc0)". Я предположил, что если я нажал кнопку на экране, она изменила цвет с одного на другой, то соответственно сменился уровень с 1 на 0 или наоборот и на выходе блока появился соответствующий уровень..Вот это хотел понять, кроме всего прочего.Но это уже выходит за рамки темы. Вот если кнопка или пиктограмма сделаны изображением, типа *.jpg или *.bmp, то такой номер прокатывает на ура, но там понятно, меняется Value,
На сколько мне помнится у Dual state button тоже есть параметр Value. Нет его у простой кнопки.
Ну типа если по цвету, то узнать состояние кнопки можно, а вот задать не получится. Задастся только цвет.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Ответить

Вернуться в «Начинающим»