"Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом."

вторник, 23 марта 2021 г.

Как упростить?

Конструкция #define[1][2][3]

 Особенность конструкции заключается в том, что именованная строка заданная директивой #define будет подставляться компилятором вместо всех упоминаний имени этой строки в коде: 

 

Но главная особенность этой директивы заключается в том, что параметром string этой директивы можно устанавливать выражения, которые будут исполняться при каждом упоминании имени этого выражения: 

 

Ускоряем digitalWrite()

 Теперь, по аналогии с приведенным выше кодом, мы вполне себе можем состряпать собственную библиотеку по ускорению работы платы Arduino. И приведем, конечно же, пример по миганию светодиода на пине D13: 


 

 
D13_WRITE...(). 
Total time: 9472 microsec, AVG time: 0,47 microseconds. (iterations 20000) 473.6 nanoseconds 
9472 мкс вместо 109456 мкс (одна операция - 0,47 мкс вместо 5,47 мкс) - ускорение в 11.5 раз, на 91.35%

 Ускоряем digitalRead()

 Этот материал в следующем материале

 

 

 

[1] Кравченко Виктор "Тюнинг Arduino или ускоряем работу платы"

[2] Официальном сайт Arduino — #Define

[3] Сайт Майкрософт, в документации к языку С++ — Директива #define (C/C++).