Raspberry Pi B+ аппаратный ШИМ

Raspberry pi B+ имеет четыре аппаратных ШИМ. Как использовать их в C/C++. Чем проще решение - тем лучше.

Я нашел одно рабочее решение с WiringPi

gpio mode 1 pwm  
gpio pwm-bal  
gpio pwmr 1024  
gpio pwm 1 500  

Это решение работает только для одного выхода PWM (GPIO18). Я думаю, это потому, что WiringPi разработан для предыдущей версии raspberry pi (модель B + имеет новые PWM на GPIO12, GPIO13 и GPIO19).

Для управления обычным GPIO я нашел решение:

pi@auto:~$ sudo -i  
root@auto:~# echo "16" > /sys/class/gpio/export  
root@auto:~# echo "out" > /sys/class/gpio/gpio16/direction  
root@auto:~# echo "1" > /sys/class/gpio/gpio16/value  
root@auto:~# echo "0" > /sys/class/gpio/gpio16/value  

Но нет возможности управлять аппаратным ШИМ.

Продукт https://www.pololu.com/product/2753 имеет ссылку на библиотеку python - это делать именно то, что я хочу.

Пожалуйста, не предлагайте программное обеспечение PWM.

Спасибо

Владо


person vlado    schedule 26.01.2015    source источник
comment
Почему бы вам не прочитать исходный код рабочей библиотеки Python и не сделать то же самое (в ней используется WiringPi2 -- github.com/Gadgetoid/WiringPi2-Python/tree/master/WiringPi/)   -  person Ben Voigt    schedule 06.04.2015


Ответы (1)


Вот дистрибутив, который надеюсь, может соответствовать вашим потребностям. Он предоставляет модули ядра PWM и Servo. Вы можете просто изменить файлы ядра в /sys/class/rpi-pwm/, чтобы создать собственный вывод PWM.
Вот ссылка для скачивания.

person Thomas Hsieh    schedule 06.04.2015