RTC

Behzod
Offline
Зарегистрирован: 28.09.2019

Я использую ds3231. Всё работает, время показывает. Как использовать время(например: секунды) в математических вычисления.

anarch
Offline
Зарегистрирован: 10.09.2017

Берете значение времени (например секунды) и применяете математическую операцию.

Behzod
Offline
Зарегистрирован: 28.09.2019

Так не получается.

Behzod
Offline
Зарегистрирован: 28.09.2019

Я использую библиотеку "iarduino_RTC". В скетче написал:
int sec = time.gettime("s")+1;
Serial.println(sec);

Behzod
Offline
Зарегистрирован: 28.09.2019

Значение: 689

Behzod
Offline
Зарегистрирован: 28.09.2019

Если написать:
Serial.println(time.gettime("s"));
Показывает секунды.

anarch
Offline
Зарегистрирован: 10.09.2017

Так и не получится.  gettime возвращает строку. Которую нужно преобразовать в целочисленный тип. А вот тогда уже складывать.

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

Behzod,

Вы хоть заголовочный файл посмотрели бы.
Та русским по белому, те секунды доступны

class iarduino_RTC{
	public:
	/**	пользовательские функции **/
		iarduino_RTC (uint8_t,uint8_t=SS,uint8_t=SCK,uint8_t=MOSI);	//	подключение (название [, вывод SS/RST [, вывод CLK [, вывод DAT]]])
		void  begin  ();											//	инициализация модуля
		void  period (uint8_t);										//	минимальный период обращения к модулю (мин)
		char* gettime(char*);										//	получить строку данных (строка с параметрами)
		void  gettime();											//	получить данные из переменных
		void  settime(int,int=-1,int=-1,int=-1,int=-1,int=-1,int=-1);//	указать время (сек,мин,час,день,мес,год,день_недели)
		void  blinktime(uint8_t);									//	мигать времем (параметр: 0-нет 1-сек 2-мин 3-час 4-день 5-мес 6-год 7-день_недели 8-полдень)

	/**	переменные доступные для пользователя **/
		uint8_t	seconds					=	0;						//	секунды			0-59
		uint8_t	minutes					=	0;						//	минуты			0-59
		uint8_t	hours					=	12;						//	часы			1-12
		uint8_t	Hours					=	0;						//	часы			0-23
		uint8_t	midday					=	0;						//	полдень			0-1		(0-am, 1-pm)
		uint8_t	day						=	1;						//	день месяца		1-31
		uint8_t	weekday					=	0;						//	день недели		0-6		(0-воскресенье, 6-суббота)
		uint8_t	month					=	1;						//	месяц			1-12
		uint8_t	year					=	15;						//	год				0-99	(без учёта века)

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Откройте описание библиотеки. Там же черным по русски написано:
// если требуется получить время в виде цифр, то можно вызвать функцию gettime() без параметра, после чего получить время из переменных
// seconds секунды 0-59
// minutes минуты 0-59
// hours часы 1-12
// Hours часы 0-23
// midday полдень 0-1 (0-am, 1-pm)
// day день месяца 1-31
// weekday день недели 0-6 (0-воскресенье, 6-суббота)
// month месяц 1-12
// year год 0-99

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Behzod пишет:
В скетче написал: int sec = time.gettime("s")+1; Serial.println(sec);
Зачем? Почему не написать правильно: int sec time.seconds + 1; далее по тексту.

Behzod пишет:
Я использую библиотеку "iarduino_RTC".
Очень хочется сказать: "немедленно брось каку!"