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

 
 
> дефайны засунуть в массив и вызывать
Метценгерштейн
сообщение Sep 12 2016, 07:07
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Есть некоторые дефайны:

Код
#define LED_0    LN8_Pin
#define LED_1    LN7_Pin
#define LED_2    LN6_Pin
#define LED_3    LN5_Pin
#define LED_4    LN4_Pin
#define LED_5    LN3_Pin
#define LED_6    LN2_Pin
#define LED_7    LN1_Pin


надо в цикле по очереди их вызывать. Как это делается обычно? Может в массив затолкнуть и по элементам идти?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
brag
сообщение Sep 14 2016, 07:43
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Кода будут пины из разных портов, (PORTA, PORTB) - у Вас с этими всеми массивами и дефайнами начнется платформозависимый мрак.
А я в то время просто напишу:
Код
#define LED1_pin GpioPin<'А',5> // этот пин GPIOA.5
#define LED2_pin GpioPin<'B',7> // а этот GPIOB.7
...
IGpioPin_T<LED1_pin> LED1_pin_rt;
IGpioPin_T<LED2_pin> LED2_pin_rt;
//...

IGpioPin* const array[xxx] = {&LED1_pin_rt, &LED2_pin_rt, &LED3_pin_rt,...};
void f(){
for(int i=0; i<sizeof(array)/sizeof(array[0]); i++)array[i]->set();
}

И то, это довольно длинный код, я обычно делаю гораздо короче. Просто привел, чтобы сама суть была понятна.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:06
Рейтинг@Mail.ru


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