Используя библиотеку C++ libgpiod, как я могу установить строки gpio в качестве выходных данных и манипулировать отдельнC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Используя библиотеку C++ libgpiod, как я могу установить строки gpio в качестве выходных данных и манипулировать отдельн

Сообщение Anonymous »

Я только начал использовать привязки библиотеки libgpiod к C++, и у меня возникли проблемы с настройками gpios. Я знаю, что могу создать длинный вектор значений и применить его ко всем сразу, но мне хотелось бы иметь возможность задавать их направление и управлять ими отдельно. Как я могу это сделать?

Я пробовал следующее:

Во-первых: рабочий код с применением всех значений сразу:

#include

int main(int argc, char **argv)
{

::gpiod::chip chip("gpiochip0");
auto lines = chip.get_all_lines();

::gpiod::line_request requestOutputs = {
argv[0],
::gpiod::line_request::DIRECTION_OUTPUT,
0
};

int value_to_be_set = 0xAAAAAAA ; //example value
::std::vector values;

for (int i = 0; i < 32; i++)
{
values.push_back((value_to_be_set >> i) & 1UL);
}

lines.request(requestOutputs, values);
lines.release();

return EXIT_SUCCESS;
}


Во-вторых, мой подход к тому, что я хочу:

#include

int main(int argc, char **argv)
{
::gpiod::chip chip("gpiochip0");
auto lines = chip.get_all_lines();

::gpiod::line_request requestOutputs = {
argv[0],
::gpiod::line_request::DIRECTION_OUTPUT,
0
};
lines.request(requestOutputs);

int value_to_be_set = 0xAAAAAAA; //example value

for (int i = 0; i < 32; i++)
{
// This does not set value :(
lines.get(i).set_value((value_to_be_set >> i) & 1UL);
}

lines.release();

return EXIT_SUCCESS;
}


Подробнее здесь: https://stackoverflow.com/questions/513 ... -manipulat
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»