C Abfrage in while-Schleife

  • Hallo, bin neu in Sachen Raspberry programmieren, aber hab n Projekt von der Schule bekommen. Ich soll mit zwei Tastern die zwei LEDs ansteuern(Die LEDs werden später durchn Motor ausgetauscht der mit PWM betrieben wird). Jetzt hab ich aber das Problem, dass immer if(Tast==1) durchläuft und auch wenn ich die Taster drück tut sich nix. Hoffe mein Problem ist verständlich genug.(LAS,ENDL und ENDR sind Endschalter und eine Laserschranke)

  • Hi,


    da ich jetzt keinen Aufbau der dem deinem gleicht hab, kann ich deinen Code nicht debuggen, möchte in dem Auszug auch nicht suchen.. Hier einfach ein Beispiel, wie das an sich funktioniert. Ich habe GPIO-PIN5 mit Tastschalter gegen GND.

    Kompiliert mit:

    gcc filename.c -o filename -l wiringPi

    Ich leide an Verfolgungswahn... :daumendreh2: Ha, da ist schon wieder einer! :denker:

    2 Mal editiert, zuletzt von Noide ()

  • Dein Code ist nicht komplett und deshalb kann Dir keiner helfen. Auch solltest Du dringend den Code vernüftig formatieren, d.h. mit richtigen Einrückungen versehen, denn der momentane Code ist extrem schwer zu lesen :no_sad:

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Torvalds, 28.9.2003

    >>> raspiBackup: Sichere Deine Raspberry regelmäßig im laufenden Betrieb <<<

  • Ich bin mir sicher, dein Code ist übertrieben komplizierter Spaghetticode. Und ohne den kompletten Code, so dass er kompiliert werden kann, kann dir auch niemand weiter helfen. Btw, der code sieht doch eher nach Arduino aus, oder?

  • Weil?


    Weil digitalRead, digitalWrite usw. kein ANSI C ist und zuerst für das Arduino Gedöns implementiert wurde. Jahre später hat die API mal jemand für den RPi übernommen, nennt sich WiringPi oder so. Aber dreamshader, das weisst du doch vermutlich alles.


    Jedenfalls fehlt in der Frage jegliche Referenz zu WiringPi und die includes fehlen halt auch alle

  • Naja ... aber ANSI-C ist doch jetzt Unsinn ... GPIO-Zugriffe sind halt nun mal nicht im Standard beschrieben.

    Es könnten ja auch selbst verfasste Funktionen sein (was in diesem Fall nicht zutrifft, weil sie imho aus der wiringPi lib stammen).


    Aber dreamshader, das weisst du doch vermutlich alles.


    Sicher, trotzdem verstehe ich Deine Anmerkung nicht. Aufgrund der Funktionsnamen jetzt auf Arduino-Code zu schliessen so was von deplatziert und unnötig.


    Jedenfalls fehlt in der Frage jegliche Referenz zu WiringPi und die includes fehlen halt auch alle

    die "includes", als headerfiles, haben, falls sie nicht selbst erstellt sind, hier auch nichts zu suchen.
    Und dass der Code nicht komplett ist, hatte framp hier


    Dein Code ist nicht komplett und deshalb kann Dir keiner helfen.

    bereits bemängelt.

    Einzig der Vergleich des Code-Stils mit italienischen Nudeln, den ich ebenfalls teile, ist hier "neu" ...


    Also ... ein bisschen mehr Substanz statt "irgendwas", um auch was gesagt zu haben, bitte.

    Das kannst Du (wie mehrfach nachlesbar) besser und solche "ballaststofftreiche" Posts blähen Threads unnötig auf und führen manchmal sogar zu sinnfreien Grundsatz-Diskussionen.


    Nix für ungut,

    cu,

    -ds-

  • return 0; while(digitalRead(LAS)==0){

    alles nach return 0; wird NIE ausgeführt

    alt: Zeile 82

    neu: Zeile 47


    ich habe mal versucht aufzuräumen und es übersichtlicher zu machen, aber so wird das nichts!


    auch deine Variable For ist unglücklich, nenne sie lieber vor und die Variable Back lieber zurueck dann gibt kein Durcheinander mit Befehlen auch wenn case sensitiv gilt (normalerweise)



    ich glaube der Code Editor hier versaut die Formatierung, im Notepad++ sieht es besser (richtig) aus

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

    2 Mal editiert, zuletzt von jar ()

  • Der Code wird von der Forensoftware auch nicht als C-Code erkannt. Evtl. wird es deswegen so verschoben. Dachte erst an gemischten SPACEs und TABs, aber die hatte ich auch, da aber mein Snippet als C-Code erkannt wird, wirds deswegen wohl korrekt angezeigt.

    Ich leide an Verfolgungswahn... :daumendreh2: Ha, da ist schon wieder einer! :denker:

  • :lol::lol::lol:

    zu spät

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr