В общем-то трудно придумать что-то радикально другое, просто у меня оно привязано конкретно к предметной области. Например, запись Qsend(u_RPL1_L); означает "послать низкий уровень на линию u_RPL1_L", которая где-то прописана, какEddy_Em писал(а):А для ногодрыга у меня вот такие макросы.
Код: Выделить всё
#define u_RPL1_L 0x0200 // D09Это я к тому, что дрыгоножество GPIO не стоит таких серьезных действий, как написание могучей библиотеки на приплюснутом Си, все решается по-простому. И сразу же возражу тем, кто попытается обвинить меня в использовании "магических чисел". Когда я выбираю биты GPIO для такого дрыгоножества, у меня на втором экране открыт даташит на мой конкретный камень, я выбираю нужные ноги, глядя на всё, что там есть - не занят ли этот бит GPIO чем-то, что может мне потребоваться, как там у него с толерантностью к 5В и пр. Ну, а какой хекс-код будет у этого бита, это не вопрос даже для начинающих...
Какой к черту оверхед в макросах, пересылающих заранее определенную константу в GPIOx->BSRR ? Или мою переменную в GPIOx->ODR ?Reflector писал(а):оверхед у тебя в макросах, потому что компилятор не имеет не малейшего представления о том, что обрабатывает, а если бы имел, то заставить его это делать на этапе компиляции на С все равно нельзя.