Как я могу переписать код Arduino, используя библиотеку SPI, на С++?

Проблема в том, что у меня есть код, использующий библиотеку Arduino, и мне нужно преобразовать его в C++, чтобы я мог использовать его с raspberry pi в ROS (операционная система для роботов). Кто-нибудь знает лучший способ изменить его или знает хорошие ресурсы?

Я знаю, что Arduino — это, по сути, C++, но не знаю, как преобразовать библиотеки Arduino в C++.

, 👍-1

Обсуждение

Библиотеки Arduino уже написаны на C++., @Majenko

Спасибо! То есть мне не нужно ничего переписывать, чтобы использовать код Arduino на C++? Или мне просто нужно называть библиотеку по-другому?, @Ally

В зависимости от библиотеки вам может потребоваться повторно реализовать стандартные вызовы API Arduino, такие как digitalWrite и т. д. Или просто реализовать свои собственные копии любых необходимых функций, используя то, что предоставляет ROS., @Majenko

API Arduino — это просто набор функций и классов C++. Если библиотеке нужна одна из этих функций или классов, просто реализуйте ее (если ROS еще не предоставляет ее. Не знаю, что или кто такое ROS)., @Majenko

Хорошо, это помогает. Я пытаюсь понять различия между Arduino и общим С++. (ROS — это операционная система для роботов, которая работает только в Linux, поэтому Arduino не работает с ней, поэтому я преобразовываю код для работы с ней на Rasberry pi)., @Ally


2 ответа


0

Иногда называемый «языком Arduino» — это C++, но с некоторыми предварительными работами, в первую очередь с добавлением файлов, которые выполняются за вас, если вы этого не сделаете.

Компилятор Arduino — это компилятор GNU C++. Если вы напишете или предоставите стандартный C++ для Arduino IDE, он скомпилирует его.

,

0

Компилятор Arduino является компилятором GNU C++, ОДНАКО в нем нет библиотеки времени выполнения c (которая не является частью компилятора).

Возможно, более важным для вопроса является то, что компилятор Arduino обеспечивает поддержку оборудования ATMEL. Это несовместимо с Raspberry Pi.

Arduino представляет собой микроконтроллер реального времени и имеет неограниченный доступ к своему оборудованию, Pi обычно работает под управлением многозадачной ОС, аппаратное обеспечение недоступно напрямую из пользовательского пространства, поэтому многие задачи нужно писать по-другому; часто это означает полагаться на поставляемый с ОС драйвер ядра.

Любая практическая программа Arduino потребует значительных изменений для работы на Raspberry Pi. Затраченных усилий, вероятно, будет больше, чем написание программы Raspberry Pi с нуля.

,