Помогите разобраться с библиотекой iarduino_rtc

Oreshek
Oreshek аватар
Offline
Зарегистрирован: 19.04.2020

ЕвгенийП пишет:

Oreshek пишет:

Так как то

Не, ну это не спортивно! Давайте одним макросом! Это же гораздо интереснее!

Green пишет:

А так?

#define every(ms)         _every(ms,__LINE__)
#define _every(ms,ln)     __every(ms,ln)
#define __every(ms,ln)    static uint32_t _##ln; \
                          if (millis() - _##ln >= (ms) && (_##ln = millis()))
                            

Так вот же написали уже его

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

Oreshek пишет:

Так вот же написали уже его

Так, я же Вам говорю

ЕвгенийП пишет:
одним макросом!
а там сколько? Это "чисто спорт" - для "поупражняться".

Oreshek
Oreshek аватар
Offline
Зарегистрирован: 19.04.2020

Ну щас попробую, поэксперементирую

Oreshek
Oreshek аватар
Offline
Зарегистрирован: 19.04.2020

Вы ещё что то там говорили про макрос ATOMIC_BLOCK

//Вот он
#if defined(__DOXYGEN__)
#define ATOMIC_BLOCK(type)
#else
#define ATOMIC_BLOCK(type) for ( type, __ToDo = __iCliRetVal(); \
	                       __ToDo ; __ToDo = 0 )
#endif

Только я не понимаю зачем он нужен и что он делает?

И как там та проблема решена

Oreshek
Oreshek аватар
Offline
Зарегистрирован: 19.04.2020

И что такое __DOXYGEN__?

и ваще что такое atomic?

 

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

Oreshek пишет:

И что такое __DOXYGEN__?

и ваще что такое atomic?

Гугла нету? Первое - для автоматического документирования кода специальной утилитой, второе - способ аккуратно запретить прерывания на время выполнения критических участков кода.