реклама на сайте
подробности

 
 
> Условное выражение внутри #define
ViKo
сообщение Mar 21 2012, 11:15
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Есть ли возможность в C сделать что-то подобное:
Код
#define TEST(A,B,MULT)    \
    A = B<<(#if (#MULT == "ONE") 1    \
            #elif (#MULT == "TWO") 2);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
neiver
сообщение Mar 21 2012, 13:45
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



А как вам такое решение.
Там, примеры для AVR приведены, но в архиве есть демо для STM32.

Сообщение отредактировал neiver - Mar 21 2012, 13:47
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 21 2012, 20:09
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(neiver @ Mar 21 2012, 16:45) *
А как вам такое решение

Не хватило усердия разобраться. Зато узнал много нового.
Судя по комментариям, все слишком сложно.
В библиотеке Std_Periph_Lib тоже куча функций используется, структуры для инициализации... якобы, с целью упрощения. Только ну его в болото, такое упрощение. Когда вместо изучения битов в регистрах приходится лазить по исходникам библиотеки, а потом все равно лезть за битами в дейташит. Не говоря уже о том ужасном количестве кода, во что превращается инициализация порта, в частности.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 11:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016