Raspberry PI GPIO Input/Schalter

Mr. Poe

Lt. Commander
Registriert
Juli 2010
Beiträge
1.812
hallo,

ich will an mein raspberry pi ein paar buttons anschließen.

wenn ich auf einen button clicke soll das raspi runterfahren...
wenn ich auf den 2ten klicke, soll es sich neustarten...

wie schreib ich da ein programm, das auf eingaben (also das drücken eines buttons) wartet und wenig cpu last verbraucht?

ich kenn mich n bischen mit c (halt nur von microchips) aus, weis aber nicht, wie ich soeine funktion schreibe, die ununterbrochen auf das event wartet und keine cpu last verbraucht.

das mit den GPIO pins sollte ich hinbekommen... nur wie schreib ich diese funktion?
und wie kompiliere ich das programm dann unter linux?

@edit:
wenns gehen würde, würde ich ein script bevorzugen.
 
ja das hab ich mir schon alles durchgelesen...

ich will ja, das der immer die buttons abfragt... periodisch aufrufen würde nicht gehen... oder soll ich immer 5 minuten warten, bis ich den knopf drücken kann?^^
wenn ich das in eine endlosschleife packen würde, dann währe die auslastung viel zu hoch... oder nicht?

mit python kenn ich mich nicht so aus...
 
ja schon...
ich weis aber nicht, ob das zuviel leistung braucht...
muss ich mal testen...

das könnte ich doch auch in ein bash script schreiben oder? und dann mit sleep immer 1ne sekunde warten?

ne blöde frage:
wie schließ ich die buttons an?^^
einfach an +3,3v und an den GPIO pin oder muss ich das anders machen?
 
ja hab ich mir schon gedacht, das das was mit interrupts zu tun hat...

is da auf der seite der beispielcode fürs raspi geschrieben?

kann man interrupts auch in bash benutzen?
 
Zuletzt bearbeitet:
Die Seite ist zwar nicht direkt für den Rasperry Pi gemacht, aber Linux ist Linux. Aufgabe eines Betriebssystems ist es ja die Hardwareunterschiede wegzuabstrahieren. Solange die entsprechende "Datei", die die GPIO Schnittstelle repräsentiert vorhanden ist, lässt sich der Code ohne Änderungen auch auf einem Rasperry kompilieren. Die Funktionen mit denen man auf diese "Dateien" zugreift, sind ja immer die gleichen, egal welche Hardware.
 
@liebernetterflo:
dann gibt der doch eine 0 aus, wenn ich die taste drücke...

theoretisch muss ich den taster auf 3,3v kurzschließen...
also:
3,3v -> Taste -> GPIO
dann sollte er bei gedrückter taste eine 1 zurückgeben?
vllt noch nen pull-down wiederstand an den GPIO pin ranmachen...

so gehts zumindest bei µcontrollern...

kennt jemand ne seite, wo das beschrieben is? ich will mein raspi nich kaputt machen...

@geisterfahrer:
da sind doch die adresswerte anders oder?
 
Zurück
Oben