Dingo (10.02.2017 11:09, просмотров: 143) ответил vllv на У меня другой подход.
Понял, что меня смущает. Много текста, который тяжело охватить сразу. #define INIT_LEDUSB_G_OFF() do { \
SET_MODER(B,8,OUTPUT_MODE); \
SET_OTYPE(B,8,PUSH_PULL_OTYPE); \
SET_OSPEED(B,8,LOW_SPEED); \
SET_PULL(B,8,PULL_NOT); \
RESET_OD(B,8); \
} while(0)
Я бы завернул ещё в макрос/функцию, для подстановки "B" и "8".
Но замечание о разнесении уровней платы и функционала правильная. Есть такая возможность:
#if defined __BOARD1__
// some code 1
#elif defined __BOARD2__
// some code 2
#else
#error Check board!
#endif
Опять же, про вкус и цвет фломастеров..