Noob sucht hilfe (geany wirinPi)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo allerseits, ich bin neu hier im Forum.
    Hab seit ein paar tagen ein Raspberry Pi 2 B+ und versuche grad ein paar schaltungen am Steckbrett zu probieren.
    Anfangs hab ich mit phyton gearbeitet, das hat auch wunderbar funktioniert, allerdings möchte ich es jetzt in C Programmieren (in der Hoffnung, dass vom Informatikunterricht in der Schule noch was hängen geblieben ist).

    Ich hab folgende Programme installiert: geany und wiringPi
    wenn ich das richtig verstanden hab ist wiringPi für die ansteuerung der GPIOs zuständig.
    ja jedenfalls hat wiringPi am anfang nicht richtig funktioniert und deswegen hab ich das ganze einfach deinstalliert und neuinstalliert leider im Ordner Downloads Pfad:

    Zitat

    /home/pi/Downloads/wiringPi-5edd177


    Anfangs hat der Aufruf von #include <wiringPi.h> nicht funktioniert, das geht aber mittlerweile.

    So dann wollte ich mal ein einfaches Programm ausprobieren und hab einfach eins von den examples im WiringPi ordner genommen. Das Programm heißt blinc.c

    Beim compilieren sieht alles i.O. aus:

    Zitat

    gcc -Wall -c "blink.c" (in directory: /home/pi/Downloads/wiringPi-5edd177/examples)
    Compilation finished successfully.

    unter build the current file dann nicht mehr so ganz:


    und beim ausführen steht dann :

    Zitat

    ./geany_run_script.sh: 5: ./geany_run_script.sh: ./blink: not found


    ------------------
    (program exited with code: 127)
    Press return to continue


    Was mach ich da falsch?

    Danke schonmal

    Mfg Patrick

  • In Geany kannst du die Parameter für den GCC Kompiler direkt übergeben, dann muss die Ausführung nicht zwingend in der Konsole gemacht werden.

    Du hast die WiringPi Libs nicht als Parameter übergeben.

    Code
    cd /home/pi/Downloads/wiringPi-5edd177/examples
    gcc -Wall -o blink blink.c -lwiringPi -lwiringPiDev
    sudo ./blinkv
  • ja erstmal danke so funktioniert das Programm

    kann ich das ganze über geany nicht machen? weil ich bin da in der consolenschreibweise noch nicht so geübt^^

    und wie kann ich das Programm dann beenden?

    • Offizieller Beitrag

    dann wirds aber zeit ;). IDEs sollen einem Arbeit abnehmen aber nicht das lernen verhindern. Und mann kann Geany das auch beibringen, deswegen hat das Teil auch ne doku

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.


  • dann wirds aber zeit ;). IDEs sollen einem Arbeit abnehmen aber nicht das lernen verhindern. Und mann kann Geany das auch beibringen, deswegen hat das Teil auch ne doku

    ja es funktioniert eh halbwegs^^
    is ein bisschen gewöhnungsbedürftig

    wie kann ich denn im LXTerminal ein Programm beenden? ich suche sowas wie das GPIO.cleanup in phyton
    weil mein Led blinkt immer noch^^

    Lg und danke

  • Hallo,

    du kannst das Kompilieren Geany beibringen,

    Erstellen > Kommandos zum Erstellen konfigurieren

    Kompilieren: gcc -Wall -c "%f" -lwiringPi -lwiringPiDev
    Erstellen: gcc -Wall -o "%e" "%f" -lwiringPi -lwiringPiDev

    Mit F9 kannst du dann Kompilieren, und mit F5 Ausführen.
    Für das Ausführen must du aber dann unter dem Menüpunkt oben noch einmal Ausführen anpassen.
    Ausführen: sudo "./%e"

    Jedoch bringt einem das nicht den gewissen Geschwindigkeitsvorteil! Ich mache das lieber in der Konsole, denn auf die Ports kannst du nicht ohne Superuser Rechte zugreifen. Wenn du mit Geany F5 zum Ausführen drückst, öffnet sich jedes Mal ein neues Terminal und das sudo Passwort muss erneut eingegeben werden.

    Zu deinem Beenden, dass ist so nicht zwingend nötig. Wenn ein Programm durchlaufen ist, dann beendet es sich automatisch. Jedoch bleiben dir Werte im System stehen. Baue deine Code entsprechend um


    int main(void)
    {
    func_init(void); // wird einmal ausgefuhrt
    func_loop(void); // diese Funktion ist solange aktiv, bis dein Programm beendet wird. Also muss du eine Abbruchbedingung einbauen
    func_exit(void); // Werte zuruecksetzen
    return 0; // Ende
    }

  • Dankeschön jetzt sind alle Probleme gelöst!
    lg

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!