Lazarus+Raspberry Pi+GPIO
Модератор: Модераторы
- GAMER
- энтузиаст
- Сообщения: 627
- Зарегистрирован: 06.08.2008 13:41:07
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
Lazarus+Raspberry Pi+GPIO
Есть ли модули для работы с сабжем?
На Си есть такое: http://www.open.com.au/mikem/bcm2835/index.html
На Си есть такое: http://www.open.com.au/mikem/bcm2835/index.html
скомпилить эту библиотеку да прилинковать к программе?
хедер всего один, да и он довольно скромен. h2pas без проблем его переварить должен.
хедер всего один, да и он довольно скромен. h2pas без проблем его переварить должен.
GAMER писал(а):То есть ставлю эту библиотеку в систему, а потом использовать h2pas для линковки?
почти.
Если библиотека ставится, как динамическая, то да. Ещё проще если она уже доступна в каком-нибудь репозитирии.
Если библиотека не доступна как динамическая, то её предварительно нужно собрать для статической линковки (в .o или .a файл).
h2pas не занимается линковкой в принципе. Он просто преобразует c-хедер, в паскаль заголовок. Чтобы FPC его понимал.
Линковкой займётся сам компилятор (а точнее сборщик), либо уже система по время запуска программы (если библиотека будет доступна динамически).
- GAMER
- энтузиаст
- Сообщения: 627
- Зарегистрирован: 06.08.2008 13:41:07
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
bcm2835 ставится стандартно. make -> make install
Добавлено спустя 7 минут 52 секунды:
Нагуглил такое: http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi#5._PiGpio_Low-level_native_pascal_unit_.28GPIO_control_instead_of_wiringPi_c_library.29 Нужно будет поиграться.
./configure make
sudo make check
sudo make install
Добавлено спустя 7 минут 52 секунды:
Нагуглил такое: http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi#5._PiGpio_Low-level_native_pascal_unit_.28GPIO_control_instead_of_wiringPi_c_library.29 Нужно будет поиграться.
GAMER писал(а):Из того, что увидел, все требует рутового доступа. А на Си работает под юзером. Жаль.
Если доступ к GPIO юзеру не сконфигурирован, то логично, что он не сможет его использовать ни из Си, ни другими способами.
А если похачить модуль PiGpio, заменив в нём
на
то тоже не работает?
Код: Выделить всё
fd := fpopen('/dev/mem', O_RdWr or O_Sync); // Open the master /dev/memory device
на
Код: Выделить всё
fd := fpopen('/dev/gpiomem', O_RdWr or O_Sync); // Open the master /dev/memory device
то тоже не работает?
- GAMER
- энтузиаст
- Сообщения: 627
- Зарегистрирован: 06.08.2008 13:41:07
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
Должно работать, проверю. В исходниках bcm2835.c алгоритм сам проверяет права и использует либо /dev/mem либо /dev/gpiomem. Сильно не копал.
Добавлено спустя 51 минуту 58 секунд:
А есть рабочий пример для Пи2? Те примеры, которые нарыл используют оригинальный PiGpio.pas.
Здесь более новый, модифицированый.
Но старые примеры не совсем подходят.
Добавлено спустя 2 часа 1 минуту 35 секунд:
Поставил http://www.afterwarp.net/products/pxl. Работает только на fpc 3.0.0 и новом Лазарусе. Нашел в сорсах /dev/mem и заменил на /dev/gpiomem. НЕ помогло, виснет все.
Добавлено спустя 51 минуту 58 секунд:
А есть рабочий пример для Пи2? Те примеры, которые нарыл используют оригинальный PiGpio.pas.
Здесь более новый, модифицированый.
http://www.meltonisl.com/software.html
в самом последнем квадратике нечто есть (не проверял).
Но старые примеры не совсем подходят.
Добавлено спустя 2 часа 1 минуту 35 секунд:
Поставил http://www.afterwarp.net/products/pxl. Работает только на fpc 3.0.0 и новом Лазарусе. Нашел в сорсах /dev/mem и заменил на /dev/gpiomem. НЕ помогло, виснет все.
