Циклы
- Войдите на сайт для отправки комментариев
Сб, 11/11/2017 - 12:01
//#include "InvertedTM1638.h" #include "TM1638.h" #include "TM16XXFonts.h" #include "DHT.h" //#define DHTPIN 2 #define dh11 DHT11 #define dh22 DHT22 int led = 3; TM1638 module(8, 9, 10); DHT dhtul(2, dh22); DHT dhtdom(3, dh11); char tempnadatchike[4]; char vlajnostnadatchike[4]; byte knopka = 0b0000000; byte sost = 0b0000001; float h; float t; String time1 ; int i; void setup() { pinMode(led, OUTPUT); module.setupDisplay(true, 0); Serial.begin(9600); Serial.println("DHTxx test!"); dhtdom.begin(); dhtul.begin(); } void disp (int h, int t) { module.setDisplayToString("C", 0, 0); module.setDisplayToString("H", 0, 4); module.setDisplayDigit(tempnadatchike[0] , 2, false); module.setDisplayDigit(tempnadatchike[1] , 3, false); module.setDisplayDigit(vlajnostnadatchike[0] , 5, false); module.setDisplayDigit(vlajnostnadatchike[1] , 6, false); module.setDisplayDigit(vlajnostnadatchike[2] , 7, false); dtostrf(h, 3, 0, vlajnostnadatchike); dtostrf(t, 2, 0, tempnadatchike); } int Settemp () { } void loop() { knopka = module.getButtons(); Serial.println (sost); if (knopka != 0b00000000) { module.setLEDs(0xFF00); sost = knopka; } if (sost == 0b00000001) { module.setLED(TM1638_COLOR_RED, 0); h = dhtul.readHumidity(); t = dhtul.readTemperature(); disp(h, t); } if (sost == 0b00000010) { module.setLED(TM1638_COLOR_RED, 1); h = dhtdom.readHumidity(); t = dhtdom.readTemperature(); disp(h, t); } if (sost == 0b00000100) { do { //sost = module.getButtons(); module.setLED(TM1638_COLOR_RED, 2); module.setDisplayToString("C", 0, 0); if (sost == 0b10000000) { i = i++; module.setDisplayToDecNumber(i , 0, false); } else if (sost == 0b01000000) { i = i--; module.setDisplayToDecNumber(i, 0, false); } }while (sost == 0b00001000); } }
Народ объясните почему выходит из цикла Do While без проверки условия выхода
Народ объясните почему выходит из цикла Do While без проверки условия выхода
Поидеи он должен в нем остатться навечно ....
Народ объясните почему выходит из цикла Do While без проверки условия выхода
значения sost в строке 80 и 100 разные - ошиблись при вводе.
Зачем вы записываете значение sost в бинарном формате 0b00000100 - пищите вместо этого просто 4, меньше путаться будете.
мне и надо чтобы при нажатии другой кнопки происходил выход из цикла.....
к бинарному уже привык...
Суть не в этом ... При нажатии 0b00000001 она считывает данные с датчика и отображает на дисплее что делать недолжена если она находится в цикле do ..... пока ненажата 0b00001000
вопрос снят..... неверно истолковал While....