Arduino Polska Forum
Zmienne - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Zmienne (/watek-zmienne)

Strony: 1 2


Zmienne - pschon - 10-01-2020

Mam pewien problem. Odczytuję godzinę z modułu ds1302 w uproszczonym formacie ( godzina. minuta  np: 13.25)

int czas = rtc.getTimeStr();

Chciałbym ze zmiennej "int czas" wyciągnąć tylko godzinę bez minut ( 13 ) i zapisać do zmiennej int tylkogodzina.


Jak prosto to zrobić. 
Pozdrawiam Piotr


RE: Zmienne - Jarewa0606 - 10-01-2020

Coś źle piszesz 12.25 to nie moze być "int"


RE: Zmienne - pschon - 10-01-2020

(10-01-2020, 15:34)Jarewa0606 napisał(a): Coś źle piszesz 12.25 to nie moze być "int"
Wiem int przechowuje tylko liczby, więc jak z rtc.getTimeStr(); zapisać do zmiennej tylko godzinę bez minut?


RE: Zmienne - Jarewa0606 - 10-01-2020

zależy co rtc.getTimeStr(); zwraca...


RE: Zmienne - pschon - 10-01-2020

(10-01-2020, 16:01)Jarewa0606 napisał(a): zależy co rtc.getTimeStr(); zwraca...

rtc.getTimeStr(); zwraca godzinę w formacie np: 13:25 a ja potrzebuję mieć w zmiennej tylko dwie pierwsze cyfry czyli 13


RE: Zmienne - Jarewa0606 - 10-01-2020

Kolega raczej pójdzie się uczyć o zmiennych i jak się nauczy to zada prawidłowe pytanie..


RE: Zmienne - pschon - 10-01-2020

(10-01-2020, 16:16)Jarewa0606 napisał(a): Kolega raczej pójdzie się uczyć o zmiennych i jak się nauczy to zada prawidłowe pytanie..

Możesz mi pomóc i napisać jak brzmi prawidłowe pytanie, bo jak na razie nic od Ciebie się nie nauczyłem, a o tym, że należy się uczyć to wiem bo żyję na tym świecie prawi 50 lat.


RE: Zmienne - Jarewa0606 - 10-01-2020

czy nie widzisz róznicy miedzy;

"13.25"
"13:25"
a może
"1325"??

Powiedz jak ci pomóc jak nie wiemy co zwraca rtc.getTimeStr(); a to co teraz pisałem trzeba użyć trzy metody wiec


RE: Zmienne - pschon - 10-01-2020

(10-01-2020, 16:42)Jarewa0606 napisał(a): czy nie widzisz róznicy miedzy;

"13.25"
"13:25"
a może
"1325"??

Powiedz jak ci pomóc jak nie wiemy co zwraca  rtc.getTimeStr(); a to co teraz pisałem trzeba użyć  trzy metody  wiec

Tak oczywiście, że widzę różnicę i poprawiłem to w poście powyżej, napisałem 13:25, gdyż wychwyciłem swój błąd. lcd.print(rtc.getTimeStr(FORMAT_SHORT));  lub  Serial.println(rtc.getTimeStr(FORMAT_SHORT)); wyświetla godzinę w formacie np: 13:25. Czy jest taka możliwość aby z 13:25 wyciągnąć dowolny znak lub 2 znaki lub więcej i zapisać do zmiennej w celu późniejszego wykorzystania?


RE: Zmienne - elvis - 10-01-2020

@pschon, jeśli oczekujesz pomocy to proponuję zacząć o napisania jakiej biblioteki używasz. Napisałeś tylko "Odczytuję godzinę z modułu ds1302", ale my nie wiemy jakiego typu jest zmienna "rtc" i możemy się tylko domyślać. A domyślanie sprawia, że nazwa getTimeStr prawdopodobnie zwaraca napis, czyli String.
Z napisu możesz oczywiście wydłubać potrzebne informacje, ale będzie to skomplikowane i mało efektywne.
Prawdopodobnie najłatwiej byłoby użyć innej funkcji - ale ciężko coś poradzić nie wiedząc co jest dostępne...

A przykładowo biblioteka dla DS1302 dostępna pod adresem https://github.com/JAnwyl/ArduinoAquariumController/tree/master/Libraries/DS1302 zawiera funkcję getTime. Dzięki niej możesz odczytać czas jako strukturę Time, gdzie aktualna godzina to po prostu pole "hour".

Natomiast niezależnie od biblioteki i problemu z ds1302, nie gniewaj się na radę kolegi @Jarewa0606 - wbrew pozorom ma on dużo racji, jeśli nie nauczysz się podstaw, to za chwilę będziesz miał kolejny problem, którego nie będziesz potrafił rozwiązać. Chyba łatwiej zacząć od opanowania prostych przykładów, zrozumienia jak działają zmienne oraz ich typy, a dopiero później zabrać się za realizowanie własnego projektu.