Posts by HaWe

    ok, danke für die vielen und vor allem freundlichen, hilfreichen Tipps -
    ich lasse es bleiben,
    ohne vernünftige ausführliche Tutorials : keine Chance.


    Linux ist IMO auch einfach ein viel zu undurchsichtiger und viel zu umständlicher Krempel (ich vermeide hier bewusst das Wort "Mist").

    wieso denkst du, ich wüsste nicht, dass C zu Linux-executables compiliert wird? ich habe das nie bezweifelt (andernfalls bitte Zitat!)
    Wann und wo habe ich falsche Information gegeben? Bitte Zitat!
    Ich habe auch nie so einen Unsinn behauptet, "Linux würde auF Python beruhen" - wie kommst du darauf? (Bitte Zitat!)
    Ich habe höchstens mal geschrieben, dass die meisten libs für Hardware (teilw. ausschließlich nur) für Python geschrieben wurden, nicht aber für C (wie z.B. die HAT Shields), was ja wohl auch richtig ist.
    Auch habe ich nie behauptet, ein anderes Forum sei besser: wo bitteschön soll das geschehen sein? Bitte lies genau, Wort für Wort, was ich geschrieben habe, bevor du solche hanebüchenen Kommentare und Vorwürfe postest! (bitte Zitat!)
    Gemeinsam erarbeitete Lösungen mögen ja eventuell schon existieren, aber extrem zerfleddert und verteilt auf -zig Topics und Posts. Meine Frage galt einer Zusammenfassung der bereits gemeinsam erarbeiteten Erkenntnisse.


    Was also hast du zu beanstanden?


    Im Übrigen ist es eine bewährte Praxis, solche OT-Anrüffelungen - unabhängig von ihrem Wahrheitsgehalt - nicht im Topic zu posten, sondern allerhöchstens als PM zu schicken. Ich selber weise darauf selber erfolgreich als admin in einem anderen - nicht zwingenderweise besseren - Forum hin (nur mal so als Tipp unter Kollegen).
    Ergänzend sei mir allerdings noch der Hinweis gestattet, dass nach C89 Standard soweit ich weiß heute kaum noch gearbeitet wird, sondern eher nach C99 oder C11.

    wie kann man so eine Prozedur zum Netzlaufwerk mounten für samba und autofs in ein Script (?) schreiben, das man bei Bedarf im Terminal dann einfach starten kann ( wo am besten erstellen bzw. speichern und wie dann von überall aufrufen können z.B. per sudo ./ "Scriptname" oder so ähnlich ? )[hr]könnte bitte jemand einmal eine komplette Anleitung dafür zur Verfügung stellen?
    Vom ersten bis zum letzten Schritt?
    (nicht zum automatisch starten beim Systemstart, sondern auf Wunsch bei Bedarf und momentaner Verfügbarkeit, sodass man je nach Heimnetz oder Firmennetz verschiedene Laufwerke bedarfsgerecht mounten kann.)


    //Zusammengefügt von trek_star: Bitte gewöhne dir das Doppelposting ab. Das macht alles nur unübersichtlich.

    die ursprüngliche Frage lautete ja: pigpio oder wiringPi, die direkten GPIO- libs waren mir ja nicht nur nicht bekannt sondern dann auch viel zu kryptisch. Im Zweifel müsste man dann erst wieder selber Libs mit entsprechenden simple-syntax-wraps drumrum etablieren.



    Aber machen wirs mal schnell komplett OT:


    [OT]
    ebenfalls OT, aber: PropellerHAT ... ok, sehr interessant, aber hat das C/C++-Libs? Die HAT-Dinger bieten doch meist nur Python-libs, oder? Falls keine C-Libs: dann wird das aber auch schon wieder schnell superkompliziert bis OT... :-/


    i2c als Bus: naklar, aber was, wenn ich 1 in Master- und 1 in Slave-Modus brauche? Beim Arduino geht das (er hat ja 2 davon, und das nutze ich auch), und je mehr Geräte dran hängen, desto langsamer wird die Sache ja auch wieder, insbesondere wenn es - wie für mich wichtig ist - um schnellen Datenverkehr im ms- oder sogar im µs-Bereich handelt (z.B. möglichst per highspeed i2c, 400kHz, was die Arduinos immerhin beherrschen). Wenn ich also an i2c statt an UART den Arduino als Muxer für schnelle digitale und langsamere ADC-Daten sowie weitere langsamere in 4-byte-IEEE-754 Codierung dranhänge, die dauernd hin- und hergeschaufelt werden müssen (i2c ist ja nur halb-duplex!) ist der "Bus" damit voll ausgelastet. Dann noch ein paar PCFs oder MCPs oder MAXs - dann haben wir aber ganz schnell Stau auf dem Datenhighway.


    ok, wieder Topic-Mode
    [/OT]


    Insgesamt kommen also laut TOP-Fragestellung nur pigpio oder wiringPi als libs in Frage, und alles andere was es sonst gibt, muss einfache C-API-libs haben, egal aus welcher Applikations- oder Hardware-Richtung.

    uuups, da kann man mal sehen... :(


    Es zeigt sich also tatsächlich, dass ein Raspi mit Raspbian nicht für zeitkritische Dinge geeignet ist, und wegen seiner sehr sparsamen Schnittstellen (nur je 1 UART und nur 1 I2C, nur 1 Hardware-PWM, und überhaupt keine ADC - CMIIW !) auch kaum zur Robotersteuerung geeignet ist, zumindest verglichen mit Arduino Mega (AVR) und Due (ARM).
    Für 4 Motoren bräuchte ich ja 8 pins mit den PC-IRQs aber auch zusätzlich noch 4 pins mit Hardware-PWM /enable (plus unabhängig davon aber auch 8 einfache pins für dir) !!
    Das muss man also offenbar alles "outsourcen". :(
    Immerhin ist dann aber wiringPi zumindest kein Nachteil gegenüber pigpio, soweit ich erkennen kann.

    (hatte sich überschnitten)


    pps,


    also das in diesem Link habe ich schon gesehen, aber verstehe davon absolut nichts.
    https://fossies.org/dox/gpsd-3.15/structgps__fix__t.html


    :: und -> ist mir ein Buch mit sieben Siegeln.


    da bräuchte ich wirklich mal einen absolut kompletten Beispielcode für die GPS-Daten in C.
    (sorry, in der Beziehung bin ich 100% noob)


    (auch den Arduino-tinyGPSplus-lib-code verstehe ich absolut nicht, aber er ist eben wunderbar einfach anzuwenden, damit klappt es sofort!)[hr]Update:
    da der Raspi ja nur 1 einzige UART Schnittstelle hat (und auch nur 1 einzige I2C !) :( , bin ich mir nicht sicher, ob es sich lohnt, die an einen einzelnen Sensor zu verschwenden.
    Vermutlich ist es besser, sie für ein Multiplexer-Board über UART zu verwenden, das mehrere Sensoren bedienen kann (z.B. Arduino Mega oder Due: beide haben ja sogar 4 UART plus 2 I2C plus beliebig viele SoftwareSerial Ports). Gerade für nicht-zeitkritische Daten wäre das vermutlich wirtschaftlicher. Hinzu kommt, dass ein weiterer Hintergrundprozess (GPS-Daemon) wieder das sowieso schon schlechte Linux-Timing-Verhalten für zeitkritischere (ich will noch gar nicht sagen: "Echtzeit"-) Prozesse verschlechtert.
    Ich denke daher, ich werde den GPS Sensor wohl nicht am Raspi direkt anschließen.
    Danke an alle für eure Antworten!


    //Zusammengefügt von trek_star: Bitte gewöhne dir das Doppelposting ab. Das macht alles nur unübersichtlich.

    aaah...:
    DAS hatte ich nirgendwo herausgelesen, aber auch C++ verstehe ich komplett nicht :


    newdata->fix.latitude, newdata->fix.longitude)


    newdata ist klar, das hat was mit einer Instanz oder Klasse zu tun, die wird ja erzeugt.
    was bedeutet dabei das "fix." ?


    haben alle anderen Werte auch dies "fix." dazwischen?

    danke!


    aber wie liest man jetzt aus


    die entsprechenden einzelnen Lattitude und Longitude-Werte ein (double) und den ganzen Rest wie Satellitenzahl, Uhrzeit usw...?

    du hast es nicht verstanden.
    Mit Serial1 lese ich die Daten
    Mit Serial schreibe ich sie auf die serielle Schnittstelle zur Bildschirmausgabe.


    Hatte ich geschrieben:



    Serial nutzt die Pins Rx und Tx,
    Serial1 dagegen Rx1 und Tx1, das sind 2 verschiedene UART-Schnittstellen.
    Die eine fürs GPS, die andere fürs Terminal-Fenster
    Steht übrigens im Sourcecode genauso völlig klar dokumentiert!


    Für den Raspi interessiert mich natürlich nur der UART-Teil für den GPS-Sensor!



    Bitte hör doch auf, hier immer in Threads, die C betreffen, reinzuposten und Verwirrung zu stiften !!!
    [Blocked Image: http://www.mindstormsforum.de/images/smilies/icon_evil.gif]

    mit UART, hatte ich oben geschrieben:


    Quote

    weiß jemand, wie man das GPS Modul Ublox GY-NEO-6M mit C programmieren kann (per UART am Raspi)?


    in C müssen nur die Daten per UART (in Sketch: Serial) abgefragt werden (siehe Beispiel-Sketch).
    Wie das in G++ auf dem Raspi geht, danach hatte ich gefragt.

    Quote

    Für die Arduino IDE gibt es libs wie tinyGPSplus, die man einfach #includen und dann die Daten mit den üblichen UART Funktionen auslesen kann....


    Gibt es vergleichbare Raspberry-libs für C und die Geany IDE?


    Und Ich hatte nach C gefragt, nicht nach Icon.
    Im Übrigen hat das Teil einen Pin-Header, den man direkt in ein Breadboard stecken kann (war bei mir schon dran).


    ps, Ergänzung:
    Die lbs sind es ja gerade, die die Daten bereits so aufbereiten, dass man sie einfach abrufen kann.
    In der tinyGPSplus-lib hat man dafür folgende API-Funktionen, per Serial (resp. Serial1) auslesbar


    Code
    gps.encode(Serial1.read();
      //...
    
    
      if (gps.location.isValid())
      { 
        fLatt= (double)gps.location.lat();
        fLong= (double)gps.location.lng(); 
        //...
      }


    (und hier zB. werden sie einfach per Serial.print ausgegeben):



    so etwas, grob in dieser Art, suche ich.

    deswegen fragte hich hier ja nach Erfahrungen und Kritierien, die fürs eine oder andere sprechen, habe jetzt aber leider noch keine wirklich konkreten Unterschiede (Leistungsfähigkeit, Einfachheit, (fehlender) Funktionsumfang etc.) herauslesen können. Wenn beide grob das gleiche bieten, würde ich sonst eher zu wiringPi tendieren, wegen der Ähnlichkeit zu Arduino Sketch/Wiring, was mir ja schon recht vertraut ist.[hr]update:


    pwm an 2 pins getestet (wiringPins 0+1, BCM_GPIO 17+18) : funktioniert!


    [hr]update2:
    Habe jetzt in der WiringPi lib auch eine Funktion entdeckt für Pinchange-IRQs auf ARM-Prozessor-Ebene (!). Diese sind einfach zu implementieren. Außerdem nutzt wiringPi zusätzlich (für andere Dinge) auch pthread, ist also damit grundsätzlich kompatibel und hat sogar weitere vereinfachte API Funktionen dafür, wenn man das möchte.. Beides war ja wichtig, sowohl von der Performance als auch von der API syntax. i-Tüpfelchen ist noch die Serial-lib, die auch die UART-Verwendung deutlich vereinfacht. Damit steht mein Favorit jetzt eigentlich fest - danke für alle, die mitgeholfen haben!


    //Zusammengefügt von trek_star: Bitte gewöhne dir das Doppelposting ab. Das macht alles nur unübersichtlich.

    hallo,
    weiß jemand, wie man das GPS Modul Ublox GY-NEO-6M mit C programmieren kann (per UART am Raspi)?
    http://www.ebay.de/itm/311296066259


    Bisher habe ich für den Raspi nur was mit einem GPS-Daemon gefunden, wo ich aber nicht sehe wie ich es in meine Programme integrieren kann.


    Für die Arduino IDE gibt es libs wie tinyGPSplus, die man einfach #includen und dann die Daten mit den üblichen UART Funktionen auslesen kann.
    https://github.com/mikalhart/TinyGPSPlus
    http://arduiniana.org/libraries/tinygpsplus/



    Gibt es vergleichbare Raspberry-libs für C und die Geany IDE?



    ist dieser Realtime-Kernel oder auch der DMA-Takt etwas, was man ohne Weiteres (z.B. wie "attachInterrupt()" bei Arduino ) einfach zusätzlich zum Raspbian-basierten C-Code einfügen kann?
    Ich brauche es ja nur für 1 einzige Funktion im gesamten Programm - der Rest sollte schon weiterhin mit den üblichen Raspbian- g++ und POSIX pthread API-Funktionen programmierbar sein.

    Was Du beachten solltest ist, dass die wiringPi und die pgpio verschiedene Pin-Nummerierungen verwenden.


    cu,
    -ds-


    das ist ja ein Ding!
    Danke, da wär ich so schnell nicht drauf gekommen!


    aber was das OS angeht: dass man keinen festen Timer-IRQs auf ARM-Prozessor-Ebene implementieren kann, jenseits von Linux-Tasks, hatte ich vorher auch nicht vermutet.

    das ist doch alles klar inzwischen, aber die Frage war doch:
    inwieweit wird das eh schon schwammige Linux-Verhalten signifikant schlechter von pigpio oder von WiringPi beeinflusst?
    pthread verwende ich ja schließlich ebenfalls in beiden Fällen.