Lazarus+Raspberry Pi+GPIO

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Lazarus+Raspberry Pi+GPIO

Сообщение GAMER » 09.04.2016 21:54:52

Есть ли модули для работы с сабжем?
На Си есть такое: http://www.open.com.au/mikem/bcm2835/index.html
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Lazarus+Raspberry Pi+GPIO

Сообщение скалогрыз » 09.04.2016 22:07:43

скомпилить эту библиотеку да прилинковать к программе?
хедер всего один, да и он довольно скромен. h2pas без проблем его переварить должен.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Lazarus+Raspberry Pi+GPIO

Сообщение GAMER » 09.04.2016 23:13:04

То есть ставлю эту библиотеку в систему, а потом использовать h2pas для линковки?
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Lazarus+Raspberry Pi+GPIO

Сообщение скалогрыз » 09.04.2016 23:21:50

GAMER писал(а):То есть ставлю эту библиотеку в систему, а потом использовать h2pas для линковки?

почти.

Если библиотека ставится, как динамическая, то да. Ещё проще если она уже доступна в каком-нибудь репозитирии.
Если библиотека не доступна как динамическая, то её предварительно нужно собрать для статической линковки (в .o или .a файл).

h2pas не занимается линковкой в принципе. Он просто преобразует c-хедер, в паскаль заголовок. Чтобы FPC его понимал.
Линковкой займётся сам компилятор (а точнее сборщик), либо уже система по время запуска программы (если библиотека будет доступна динамически).
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Lazarus+Raspberry Pi+GPIO

Сообщение GAMER » 09.04.2016 23:25:25

bcm2835 ставится стандартно. make -> make install
./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
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Lazarus+Raspberry Pi+GPIO

Сообщение SSerge » 10.04.2016 05:42:25

http://www.meltonisl.com/software.html

в самом последнем квадратике нечто есть (не проверял).
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Lazarus+Raspberry Pi+GPIO

Сообщение GAMER » 17.05.2016 18:27:12

Из того, что увидел, все требует рутового доступа. А на Си работает под юзером. Жаль.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Lazarus+Raspberry Pi+GPIO

Сообщение Дож » 17.05.2016 19:15:52

GAMER писал(а):Из того, что увидел, все требует рутового доступа. А на Си работает под юзером. Жаль.

Если доступ к GPIO юзеру не сконфигурирован, то логично, что он не сможет его использовать ни из Си, ни другими способами.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Lazarus+Raspberry Pi+GPIO

Сообщение GAMER » 17.05.2016 21:13:39

Не так. Под одним и тем же пользователем софт, написаный на Си, работает, а написаный на Лазарусе/паскале - нет. Разная логика обращения к ресурсам.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Lazarus+Raspberry Pi+GPIO

Сообщение Дож » 17.05.2016 21:22:07

А если похачить модуль 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

то тоже не работает?
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Lazarus+Raspberry Pi+GPIO

Сообщение GAMER » 18.05.2016 10:38:39

Должно работать, проверю. В исходниках bcm2835.c алгоритм сам проверяет права и использует либо /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. НЕ помогло, виснет все.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru