Kod:
#include <DS1307RTC.h>
String showtime;
String czas;
void setup() {
Serial.begin(9600); // the SERIAL baud rate
delay(5000);
gettime();
delay(100);
Serial.println(showtime);
}
void gettime(){
tmElements_t tm;
showtime = " ";
if (RTC.read(tm)){
showtime = "Czas: ";
showtime += tmYearToCalendar(tm.Year);
showtime += "/";
showtime += tm.Month;
showtime += "/";
showtime += tm.Day;
showtime += ", ";
showtime += tm.Hour;
showtime += ":";
showtime += tm.Minute;
showtime += ":";
showtime += tm.Second;
showtime += " .";
}
else {
if (RTC.chipPresent()) {
showtime = "The DS1307 is stopped. Please run the SetTime";
} else {
showtime = "DS1307 read error! Please check the circuitry.";
}
}
showtime = "blad RTC!";
}
problem w tym ze nie mogę przechować to w zmiennej
showtime, ani nie moge zrobić żeby funkcja gettime() zwracała to na zasadzie return showtime. kod się wysypuje na Serial.println();
Funkcja gettime() nie może nic zwrócić, ponieważ skonstruowałeś ją tak, aby nic nie zwracała.
Gdybyś napisał:
Kod:
String gettime(){
String showtime =" ";
//jakiś kod
return showtime;
}
To wtedy by zwracała Stringa.
Następnie pozbądź się zmiennych globalnych.
Wyświetlasz wyniki np. tak:
Kod:
Serial.println(gettime());
I wywal te dalaye. To do niczego nie służy.
(14-06-2020, 22:44)Robson Kerman napisał(a): [ -> ]Funkcja gettime() nie może nic zwrócić, ponieważ skonstruowałeś ją tak, aby nic nie zwracała.
Gdybyś napisał:
Kod:
String gettime(){
String showtime =" ";
//jakiś kod
return showtime;
}
To wtedy by zwracała Stringa.
Następnie pozbądź się zmiennych globalnych.
Wyświetlasz wyniki np. tak:
Kod:
Serial.println(gettime());
I wywal te dalaye. To do niczego nie służy.
czyli tu był pies pogrzebany, nie void a String, tego nie wiedziałem. Własnie problem byl taki ze co wsadziłem return to wywalał błąd.
Co do zmiennych globalnych to jak inaczej je obejść jak ciągle wywala ze brak deklaracji zmiennych, dlatego tworze je jako globalne, jak je zaimplementować lokalnie na chwile żeby pamięci nie zjadały?
(15-06-2020, 22:33)hebdzik napisał(a): [ -> ]Co do zmiennych globalnych to jak inaczej je obejść jak ciągle wywala ze brak deklaracji zmiennych, dlatego tworze je jako globalne, jak je zaimplementować lokalnie na chwile żeby pamięci nie zjadały?
Budujemy funkcje zwracające wartość. Wtedy zmienne żyją tylko na czas działania funkcji.
Wewnątrz funkcji możesz ograniczać zasięgi zmiennych klamrami.