bry... ESP8266:
Jako że programista ze mnie z żaden, mimo to próbuje zabawy w te klocki i przy okazji czegoś się nauczyć.
Próbuje do pogodynki dodać kod sterujący podświetleniem w zależności od godziny.
Program, nie kompiluje się w Arduino IDE : 'else' without a previous 'if' i nie umiem wyłapać co jest nie tak.
Jak inaczej osiągnąć sterowanie PWM pinem w określonych godzinach?
Próbowałem w ten sposób
-------------- CUT HERE FOR EXCEPTION DECODER ---------------
19:36:22.726 ->
19:36:22.726 -> Soft WDT reset
19:33:42.991 ->
19:33:42.991 -> >>>stack>>>
19:33:43.024 ->
19:33:43.024 -> ctx: cont
19:33:43.024 -> sp: 3ffffdf0 end: 3fffffc0 offset: 01a0
19:33:43.057 -> 3fffff90: 3fffdad0 00000000 3ffe84d4 40202665
19:33:43.124 -> 3fffffa0: feefeffe feefeffe 3ffeed78 4020a574
19:33:43.157 -> 3fffffb0: feefeffe feefeffe 3ffe857c 40100c5d
19:33:43.223 -> <<<stack<<<
19:37:00.466 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
Jeśli użyje same if:
dostaje w odpowiedzi
Czyli nie za bardzo działa... o 19 powinna być wartośc 768
Jako że programista ze mnie z żaden, mimo to próbuje zabawy w te klocki i przy okazji czegoś się nauczyć.
Próbuje do pogodynki dodać kod sterujący podświetleniem w zależności od godziny.
Kod:
int getH=-1;
.............
void loop() {
getTime();
screen1();
delay(10000);
getCurrentData();
screen2();
delay(10000);
getForecastData();
screen3();
delay(10000);
if (getH >= 0 && getH < 7);
{ analogWrite (TFT_LED, 100); // ("podswietlenie 10%");
}
else if (getH >= 18 && getH < 20 );
{ analogWrite (TFT_LED, 768); // ("podswietlenie 75%");
}
else if (getH >= 20 && getH < 22 );
{ analogWrite (TFT_LED, 512); // ("podswietlenie 50%");
}
else if (getH >= 22 && getH <= 24 );
{ analogWrite (TFT_LED, 100); // ("podswietlenie 10%");
}
else
{ analogWrite (TFT_LED, 1023); // ("podswietlenie 100%")
}
}
Jak inaczej osiągnąć sterowanie PWM pinem w określonych godzinach?
Próbowałem w ten sposób
Kod:
while (getH >= 0 && getH < 7);
{ analogWrite (TFT_LED, 100); // ("podswietlenie 100%");
}
while (getH >= 18 && getH < 20 );
{ analogWrite (TFT_LED, 768); // ("podswietlenie 75%");
}
while (getH >= 20 && getH < 22 );
{ analogWrite (TFT_LED, 512); // ("podswietlenie 50%");
}
while (getH >= 22 && getH <= 24 );
{ analogWrite (TFT_LED, 100); // ("podswietlenie 10%");
}
while (getH >= 8 && getH <= 17 );
{ analogWrite (TFT_LED, 1023); // ("podswietlenie 10%_noc")
}
-------------- CUT HERE FOR EXCEPTION DECODER ---------------
19:36:22.726 ->
19:36:22.726 -> Soft WDT reset
19:33:42.991 ->
19:33:42.991 -> >>>stack>>>
19:33:43.024 ->
19:33:43.024 -> ctx: cont
19:33:43.024 -> sp: 3ffffdf0 end: 3fffffc0 offset: 01a0
19:33:43.057 -> 3fffff90: 3fffdad0 00000000 3ffe84d4 40202665
19:33:43.124 -> 3fffffa0: feefeffe feefeffe 3ffeed78 4020a574
19:33:43.157 -> 3fffffb0: feefeffe feefeffe 3ffe857c 40100c5d
19:33:43.223 -> <<<stack<<<
19:37:00.466 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
Jeśli użyje same if:
dostaje w odpowiedzi
Kod:
if (getH >= 0 && getH < 7);
{ analogWrite (TFT_LED, 100); // ("podswietlenie 100%");
}
if (getH >= 18 && getH < 20 );
{ analogWrite (TFT_LED, 768); // ("podswietlenie 75%");
}
if (getH >= 20 && getH < 22 );
{ analogWrite (TFT_LED, 512); // ("podswietlenie 50%");
}
if (getH >= 22 && getH <= 24 );
{ analogWrite (TFT_LED, 100); // ("podswietlenie 10%");
}
if (getH >= 8 && getH <= 17 );
{ analogWrite (TFT_LED, 1023); // ("podswietlenie 10%_noc")
}
Kod:
prad = analogRead(TFT_LED);
Serial.println ("################### Czytam ustawienia PWM i Godziny##########################");
Serial.println (getH);
Serial.println (prad);
delay (1000);
19:48:23.252 -> ################### Czytam ustawienia PWM i Godziny##########################
19:48:23.318 -> 19
19:48:23.318 -> 1023
Czyli nie za bardzo działa... o 19 powinna być wartośc 768