Управление портами в цикле с помощью Vex RobotC

Я использую Vex RobotC и имею функцию: setTouchLEDRGB(portx, R,G,B); который устанавливает цвет RGB touchLED..

У меня есть 9 TouchLEDs и я хочу изменить их цвет одновременно, но досадно, что это 9 строк кода за раз, я надеюсь создать функцию с итерацией, например:

for (i = 0, i < 9, i++)
{
    setTouchLEDRGB(port[i], R, G, B);
}

Есть ли способ сделать это?

2 ответа

Решение
setTouchLEDRGB(portx, R,G,B);

Не уверен насчет платформы, но вы можете создать массив, связывающий порты:

#define NUM_PORTS 9

// 'int' should be the type of your port parameter
int ports[NUM_PORTS] = {PORTA, PORTB, etc};

for (int i = 0; i < NUM_PORTS; ++i) {
    setTouchLEDRGB(ports[i], R, G, B);
}

При условии, что у вас есть переменная или макросы для портов с именем portn

   int ports[9];
    ports[0] = port0;
    ports[1] = port1;
    ...

    for (i = 0, i <9, i ++)
    {
     setTouchLEDRGB(ports[i], R, G, B);
    }
Другие вопросы по тегам