-
- вместо записи маски используется запись по адресу. Удобнее, если пины могут быть переконфигурированы в процессе работы программы: просто храните указатель на 32-битное слово, которое отвечает за состояние отдельного пина koyodza(283 знак., 07.11.2013 01:18)
- Альтернатива -
макросinline-функция#define - если решили назначить сигнал другому пину, просто указали новую маску в тот же или другой порт - _keil(07.11.2013 09:02)- Вы не поняли: у Вас адрес порта и маска (два параметра), у меня один адрес. Пока всё задано define большой разницы нет (хотя на самом деле небольшая разница есть в получаемом коде), но когда Вам понадобится в процессе работы программы koyodza(282 знак., 07.11.2013 14:05 - 14:08)
- Я делаю шаблонный класс, где параметрами будут порт и пин. - Леонид Иванович(07.11.2013 12:40)
- Рабочий вариант, но call и ret требуют ненулевого cpu time. Как минимум push/pop. Может случиться что эта задержка ограничит желаемую скорость ногодрыганья. Дело Ваше, я предпочту #define set GPIOB->BSRR=GPIO_BSRR_BR1; #define reset GPIOB->BRR _keil(115 знак., 07.11.2013 13:13)
- Какие call и ret? Функции, определённые в теле класса инлайнятся без каких-либо накладных расходов. - =AlexD=(08.11.2013 11:40)
- Рабочий вариант, но call и ret требуют ненулевого cpu time. Как минимум push/pop. Может случиться что эта задержка ограничит желаемую скорость ногодрыганья. Дело Ваше, я предпочту #define set GPIOB->BSRR=GPIO_BSRR_BR1; #define reset GPIOB->BRR _keil(115 знак., 07.11.2013 13:13)
- Альтернатива -
- вместо записи маски используется запись по адресу. Удобнее, если пины могут быть переконфигурированы в процессе работы программы: просто храните указатель на 32-битное слово, которое отвечает за состояние отдельного пина koyodza(283 знак., 07.11.2013 01:18)