Официальный сайт компании Arduino по адресу arduino.cc
Так как то
Не, ну это не спортивно! Давайте одним макросом! Это же гораздо интереснее!
А так?
#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()))
Так вот же написали уже его
Так, я же Вам говорю
Ну щас попробую, поэксперементирую
Вы ещё что то там говорили про макрос ATOMIC_BLOCK
//Вот он #if defined(__DOXYGEN__) #define ATOMIC_BLOCK(type) #else #define ATOMIC_BLOCK(type) for ( type, __ToDo = __iCliRetVal(); \ __ToDo ; __ToDo = 0 ) #endif
Только я не понимаю зачем он нужен и что он делает?
И как там та проблема решена
И что такое __DOXYGEN__?
и ваще что такое atomic?
Гугла нету? Первое - для автоматического документирования кода специальной утилитой, второе - способ аккуратно запретить прерывания на время выполнения критических участков кода.
Так как то
Не, ну это не спортивно! Давайте одним макросом! Это же гораздо интереснее!
А так?
Так вот же написали уже его
Так вот же написали уже его
Так, я же Вам говорю
Ну щас попробую, поэксперементирую
Вы ещё что то там говорили про макрос ATOMIC_BLOCK
Только я не понимаю зачем он нужен и что он делает?
И как там та проблема решена
И что такое __DOXYGEN__?
и ваще что такое atomic?
И что такое __DOXYGEN__?
и ваще что такое atomic?
Гугла нету? Первое - для автоматического документирования кода специальной утилитой, второе - способ аккуратно запретить прерывания на время выполнения критических участков кода.