Переменные постоянно сбрасываются
- Войдите на сайт для отправки комментариев
Пнд, 08/06/2020 - 20:51
int sostOsv; int sostObogrev; if (input_string=="Off1"){digitalWrite(Rel1, LOW);sms.SendSMS(n1, "Otkluchen svet");memset(n,0,20);sostOsv = 0;} if (input_string=="Off2"){digitalWrite(Rel2, LOW);sms.SendSMS(n1, "Otkluchen obogrev");memset(n,0,20);flag=1;sostObogrev = 0;} if (input_string=="On1"){digitalWrite(Rel1, HIGH);sms.SendSMS(n1, "Vkluchen svet");memset(n,0,20);sostOsv = 1;} if (input_string=="On2"){digitalWrite(Rel2, HIGH);sms.SendSMS(n1, "Vkluchen obogrev");memset(n,0,20);flag=0;sostObogrev = 1;} if (input_string=="T"){sms.SendSMS(n1, sendsms);memset(n,0,20);} if (input_string=="sost") { if(sostObogrev == 0 and sostOsv == 0){ sms.SendSMS(n1, "Otkluchen svet, Otkluchen obogrev"); memset(n,0,20); } if(sostObogrev == 1 and sostOsv == 0){ sms.SendSMS(n1, "Otkluchen svet, Vkluchen obogrev"); memset(n,0,20); } if(sostObogrev == 0 and sostOsv == 1){ sms.SendSMS(n1, "Vkluchen svet, Otkluchen obogrev"); memset(n,0,20); } if(sostObogrev == 1 and sostOsv == 1){ sms.SendSMS(n1, "Vkluchen svet, Vkluchen obogrev"); memset(n,0,20); } }
Здравствуйте форумчане. Вообщем собираю сборку для умного дома и при запросе состояния реле, приходит один и тот же ответ, независимо от того, включено то или иное реле или отключено. Как сделать так, чтобы переменные sostOsv и sostObogrev запоминались?
Сначала сетовал на memset, но попробовал убрать и ничего не изменилось
либо сделать эти переменные static, либо вынести их в глобальные
Надо код выкладывать полностью.
Если все что выложено выше - находится внутри процедурфы loop() или какой-то другой, то переменные будут сбрасываться, они же при каждом запуске loop создаются заново в строке 1 и 2
Читайте что такое глобальные или статические переменные.
Сначала сетовал на memset
Надо запомнить этот шедевр.
Сначала сетовал на memset
Надо запомнить этот шедевр.
Ну, а чо, если мемсет не той системы попался? Бывает.
Сначала сетовал на memset
Надо запомнить этот шедевр.
ты еще запомни, если отправляешь переменную n1, то мемсетом надо обязательно чистить какую-то таинственную n.