Hallo, um die Hardwarepins in C-Programmen benutzen zu können, braucht man eine der obigen Bibliotheken. wiringPi gefällt mir erst einmal gar nicht, da ich bisher noch keine vernünftige Doku dazu gefunden habe. Außerdem hat die eine ganz andere Pinnummerierung, wegen der dürftigen Doku ist es auch schwierig, herauszufinden, welche Ports nun welche wiringPi-Nummer haben. bcm2835 hat dagegen eine deutlich bessere Doku und benutzt die originale bcm2835 Pinnummerierung. Daher würde ich diese Bibliothek bevorzugen. Nun brauche ich aber noch eine Interruptroutine, die ca. 1000-mal pro Sekunde aufgerufen wird. Ob das mit einem internen Timer geht oder ob nur Interrupts auf Flanken von einem GPIO-Port möglich sind, ist erst einmal egal, notfalls schließe ich einen 1000Hz-Oszillator an einen GPIO an. Leider sieht es mit der bcm2835-Bibliothek relativ düster mit Interrupts aus, mit wiringPi geht angeblich ein Interrupt von einem GPIO. Kann man mit bcm2835 auch Interrupts realisieren oder gibt es irgendwo eine gute Doku für wiringPi, in der alle vorhandenen Funktionen erklärt sind, incl. der benötigten Parameter? Wie schnell ist wiringPi beim Ansprechen der Ports? Wenn es gar nicht anders geht, kommt ein kleiner Mikrocontroller dazu, der die Aufgaben der Interruptroutine übernimmt (hauptsächlich Abfrage des optischen Drehgebers, evtl. auch Timervariablen zählen) und dann per SPI abgefragt wird... Aber es wäre mir lieber, wenn ich mir diese Zusatzhardware sparen könnte. Gruß Andy
Wiring Pi ist schon Dokumentiert, auch die Pin-Zuordnung: https://projects.drogon.net/raspberry-pi/wiringpi/pins/ Wenns um Geschwindigkeit geht ist nativ am besten. Bzgl. Interrupts gibt es auch was in WiringPi: https://projects.drogon.net/raspberry-pi/wiringpi/functions/
Hallo, inzwischen habe ich auch etwas mehr Doku gefunden: http://wiringpi.com/reference/ Aber gerade die Pinnummerndoku ist nicht vollständig: Ich habe den Raspberry Pi B+ und die Doku behandelt nur die Steckerpins 1-26, aber nicht die Pins 27-40. Das sind andere Pins als auf P5 vom Raspberry Pi B. Es sieht aber so aus, daß es Funktionen gibt, die die wiringPi-Nummern in die bcm2835-Nummern und zurück ügersetzt. Von den GPIOs werde ich den SPI-Bus nutzen, ebenso einen PWM und ein paar einzelne GPIOs. 6 davon, um bis zu 64 SPI-Slaves ansprechen zu können, die werden vor dem SPI-Zugriff gesetzt und verknüpfen es mit dem CS0 für jeden SPI-Slave, z.B. mit zwei 74HC138. Ich habe nämlich weit mehr als nur 2 SPI-Slaves (ist ein größeres Projekt)... Dafür werde ich mir sowieso eigene Funktionen schreiben, die dann die wiringPi-Funktionen benutzen. Ein paar Sourcen habe ich im gepackten Download gefunden, ich hoffe, es sind alle Sourcen dabei, evtl. wird dann einiges klarer. Evtl. finde ich dann auch eine vollständige Übersetzung der Pinnummern. Schön, daß der Raspberry Pi kein Flash oder sonst einen permanenten Speicher hat, so kann ich vor der Installlation von wiringPi ein Image von der SD-Karte machen und wieder in den alten Zustand zurückkehren, falls das doch nichts werden sollte. Das gilt auch für andere Experimente von irgendwelchen Setups oder Installationen, außerdem kann man so ein laufendes Raspiprojekt ganz simpel klonen, ohne jedesmal die Software neu installieren zu müssen. Gruß Andy
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.