Цитата:
Допис від Multiman
|
Тогда уж лучше библиотека digitalWriteFast
Из интереса сравнил размер кода мигания для стандартной среды, библиотеки digitalWriteFast и библиотеки CyberLib
//Std lib
//Sketch uses 854 bytes (2%) of program storage space. Maximum is 28*672 bytes.
//Global variables use 9 bytes (0%) of dynamic memory, leaving 2*039 bytes for local variables. Maximum is 2*048 bytes.
//digitalWriteFast (safe Interrupt version)
//Sketch uses 456 bytes (1%) of program storage space. Maximum is 28В*672 bytes.
//Global variables use 9 bytes (0%) of dynamic memory, leaving 2В*039 bytes for local variables. Maximum is 2В*048 bytes.
//CyberLib
//Sketch uses 550 bytes (1%) of program storage space. Maximum is 28*672 bytes.
//Global variables use 13 bytes (0%) of dynamic memory, leaving 2*035 bytes for local variables. Maximum is 2*048 bytes.
К томуже при использовании digitalWriteFast заменить конструкцию вида digitalWrite(13, HIGH); на digitalWriteFast(13, HIGH); можно автоматически во всем файле и для любых пинов за одну команду
Для CyberLib придется заменять digitalWrite(13, HIGH); на D13_High; И так для каждого пина и состояния. Что мягко говоря уже не столь просто. Можно, конечно, воспользоваться более интеллектуальной заменой, скриптами... но уже и не надо...
Добавить #include <digitalWriteFast.h> и сделать указанную выше поиск\замену digitalWrite на digitalWriteFast дело 20 секунд.
Скорость выполнения не проверял... Для данного акваконтроллера не критично.