der Pi 3B ist ein Quadcore, d.h. er ist durch 2 softpwm Pins nicht überfordert.
IIRC läuft softwPwm mit timer-IRQs (kann mich aber nicht mehr genau erinnern) und daher störungsfrei parallel zu anderen threads/tasks.
Ich kann mich dunkel erinnern, dass das mal im Raspi.org forum diskutiert wurde mit der Freq., und dass Arduino-ähnliche Werte locker erreicht werden können (ca. 500Hz).
HWpwm auf dem Pi besitzt der kernel (bcm GPIOs 12+13), da brauchst du also root-Rechte, hat aber ansonsten IMO keine besonderen Vorteile.
Ich habe übrigens mit pthread-Programmen bisher bisher 6 pwm-Motoren mit softwPwm plus 6x Rotationsencoder-Reading im 100µs Takt plus UART-Kommunikation mit einem Arduino im 10ms Takt plus IR-Sensoren im 50ms Takt plus HDMI-Display-paint und plus console-print im 30ms Takt.
PS,
Nur 1 Anm.:
weil US-Sensoren MEIST sehr lange blockierende delays brauchen, solltest du diese dann am besten schon auch in eigene pthreads packen, damit der Rest störungsfrei weiterläuft (zB. bei einer ununterbrochenen i2c-, SPI-, pwm- oder UART-Auslesung, softwPwm ist dabei aber auch außen vor).
Wenn du kein MT nutzt, dann nimm also US-Sensoren, die das nicht brauchen oder nimm von vornherein IR-Sensoren (Sharp GP2D120 o.ä.).
pthread läuft übrigens störungsfrei schon auf Singlecores (dafür wurde es entwickelt), aber auf einem Pi Quadcore läuft es wie ein Rudel Schlittenhunde![]()
(wenn du pthread nutzen willst und dazu Fragen hast, mach am besten dazu ein neues topic auf.)







Zitieren

Lesezeichen