Взято тут: "C++ template metaprogramming introduction" |
C++
Раз
вже цей приклад представлено в стількох варіантах, продемонструю, як
C++ може бути корисним під час роботи з контролерами. Людина із ніком
fede.tft запропонувала цікавий підхід спрощення роботи з STM32 і
подібними пристроями, з використанням шаблонів та інших сучасних
фішок С++: "STM32 GPIOs and Template Metaprogramming".
Замість або плутаного, або багатослівного, підходів, описаних в попередніх постах, без втрати продуктивності (!), можна робити
так:
typedef Gpio<GPIOB_BASE,1> trig; trig::mode(Mode::OUTPUT); trig::high(); trig::low(); typedef Gpio<GPIOB_BASE,2> echo; echo::mode(Mode::INPUT); if( echo::value() ) { ... }