Guten Abend Community,
nachdem ich mein letztes Problem durch Eure Unterstützung lösen konnte, nun das nächste:
Wie im letzten Thema von mir beschrieben soll der raspi im Keller befestigt werden, über ein Kabel seine Daten per S0-Protokoll erhalten und diese dann in (s)einer mysql-Datenbank ablegen. Die Auswertung erfolgt dann zu einem späteren Zeitpunkt über das Netz mittels php und voraussichtlich auf einem anderen Rechner.
Um das Ganze im Trockenlauf zu testen habe ich jetzt ein Programm, das Pin 11 (GPIO 17) als Ausgang schaltet und zyklisch zwischen high und low toggled und ein weiteres, das Pin 12 (PIO 18) als Eingang definiert, einen Interrupt-Handler auf Rising-Edge-Events installiert und in diesem Handler derzeit nur eine Meldung ausgibt.
Das erste habe ich mit der wiringPi-API geschrieben, für das zweite habe ich die bcm2835-Library verwendet.
Wenn ich nun das erste Programm starte, kann ich über Webiopi sehen, dass der Pin wunderbar zwischen high und low wechselt.
Nun nehme ich ein Breadboard und verbinde Pin 11 und Pin 12. Klappt wunderbar - in der Oberfläche sehe ich nun beide Pins blinken.
Sobald ich aber das zweite Programm aufrufe, friert der Raspi ein und kurz drauf rebootet er (wegen des watchdog-Timers).
Edit: verwende ich in beiden Programmen nur die wiringPI API dann funktionieren beide Programme anstandslos. Das problem ist also zur Realisierung eher marginal, könnte aber aufgrund des massiven Hängers doch ganz interessant sein, falls man mal einen Mix aus solchen Anwendungen benötigt oder zufällig einsetzt. Vielleicht liegt die Lösung auch in der Mitte - sprich direkt auf die Register zuzugreifen?
Ich habe schon im web gesucht, aber leider nichts gefunden.
Gibt es da Unverträglichkeiten zwischen den beiden APIs und ist evtl. jemandem schon mal so was untergekommen?
Ich werde mal die statische Variante von wiringPI probieren und das Ergebnis dann hier posten.
In diesem Zusammenhang hätte ich eine Bitte: würdet ihr mir verraten für welche Variante ihr euch entschieden habt und warum?
Wie gesagt - es geht nicht um ein Script sondern ein C-Programm!
Vielen dank schon mal und viele Grüße aus dem nächtlichen Rosenheim,
-ds-