Posts by hunter_spike

    Ich glaub ich hab da gerade was verstanden:
    Zeile 6 ff:

    Code
    1. int readInput(int fd, int reg)
    2. {
    3.     wiringPiI2CReadReg8(fd, reg);
    4.     return wiringPiI2CReadReg8(fd, reg);
    5. }


    Den Befehl "readInput" baue ich mir da gerade selber (Unterprogramm). Er bekommt zwei Werte, die in dem Unterprogramm "fd" und "reg" heißen.


    In Zeile 16:

    Code
    1. int dacModule = wiringPiI2CSetup(0x48);


    gebe ich dem Befehl wiringPiI2CSetup die Adresse von meinem Chip mit. Den Rückgabewert schreibe ich in dacModule.


    Weiter unten bei:

    Code
    1. for (i=0;i<4;i++) A[i] = readInput(dacModule, A_Reg[i]);


    bestimme ich, das "readInput" die Werte "dacModule" und "A_Reg(0-4)" erhält, die aber in "readInput"selber "fd" und "reg" heißen.
    "A_Reg" ist das Register, in dem der Analogwert steht. "dacModule" ist der Analogwert.


    Ist das annähernd so richtig???

    Ich nochmal,
    das lauffähige, oben genannte Prog fängt wie folgt an:



    wofür steht denn das "fd" und das "reg" hinter den Befehlen. Ich war eigentlich davon ausgegangen das da Werte an die einzelnen Befehle übergeben werden oder zurückgegeben werden. Habe probiert die Werte mit cout auszugeben. Aber das klappt alle irgendwie nicht. =(

    Hallo Dreamshader und deets,
    ich habe diese Woche Nachtschicht und die Raspi auf der Firma liegen. Wenn alle Maschinen laufen hab ich Zeit für die Raspi :-)


    dreamshader, dein Tip

    Code
    1. $ g++ pcf8591.cpp -o pcf8591 -lwiringPi


    hat funktioniert.


    Aber warum ich das machen muss hab ich nicht verstanden:


    Ich rufe das Programm g++ auf.
    Das soll pcf8591.cpp übersetzen
    Sollte schon eins da sein dann überschreiben.
    Das Neue Programm soll pcf8591 heißen.


    Die wiringPi habe ich doch schon mit include in meiner Headerdatei eingebunden......


    deets, das Programm macht scheinbar das, was es soll:
    4 Analogsignale einlesen,
    Der Reihe nach auf dem Bildschirm ausgeben,
    den Durchschittswert auf den analogen Ausgang ausgeben.
    Bin ich aber auch erst drauf gekommen als ich sah, das da ein "Write" vor der Berechnung steht...


    Danke erstmal für Eure Hilfe.


    Gruss,


    Achim



    Folgendes hat sich schon erledigt. Erst die Suche benutzen....dann fragen. :-(
    Hätte mit dem kill-Befehl abbrechen können. Stecker ziehen geht aber auch. ';-)
    Das Prog benötigt auf jeden Fall noch eine Routine zum beenden.


    Automatisch zusammengefügt:
    [hr]
    Und da habe ich gleich das nächste Problem:
    Ich hatte eben das Prog ausgeführt und die Funktion mit Taschenlampe und Multimeter getestet. Alles gut.
    Beim verlassen der Werkstatt hab ich alle Fenster an der Raspi geschlossen.
    Wie ich gerade wieder rein komme und spaßeshalber mit der Taschenlampe auf den LDR leuchte, da bewegt sich das Multimeter.
    Wo ist denn jetzt das laufende Programm???
    Wie muss ich das Termial beenden, damit das Programm auch geschlossen wird???


    Gruss,


    Achim

    Hallo deets,
    Du hast bestimmt Recht. Der beschriebene Fall geht einfacher zu lösen. Ich hab mir vor ein paar Wochen ein dickes c++-Buch gekauft und die ersten 100 Seiten trocken runtergelesen. So grob hab ich verstanden, was da steht.
    Neben der Raspi reizt es mich aber auch PIC-Prozessoren zu programmieren. Außerdem sind die Industrieroboter meines Arbeitgebers auf c++-Basis programmiert.
    Wäre sicherlich nicht von Nachteil wenn ich da ein Ass im Ärmel hätte.


    Zum oben geschriebenen Programm:
    Habe das ja nur aus dem Netz runter geladen damit meine Chips irgend was machen. Über den Sinn hab ich mir noch keine Gedanken gemacht.



    Gruss,


    Achim

    Hallo zusammen,
    ich möchte mich kurz vorstellen:
    1971 geboren,
    1987 Kommunikationselektroniker gelernt,
    abgebrochenes Studium Nachrichtentechnik =(
    seit dem Betriebselektriker, Schwerpunkt Fehlersuche mit S7 bei einem Automobilzulieferer,
    seit 2 Wochen Besitzer einer Raspberry Pi 3.


    Ich weiß schon das mein Betriebssystem linux ist,
    das "sudo" die Rechte von "root" ersetzt,
    und das "nano" ein Texteditor ist.


    ... und das war gar nicht so einfach raus zu finden! :bravo2:


    Mein Ziel ist es das die Raspi ein paar Steuerungsaufgaben in meinem Haus automatisiert. Das ganze soll unter c++ geschehen. Ich hab da zwar keine Ahnung von, aber auf der ein oder anderen Seite im Internet wird die Sprache empfohlen.
    Einzelne gpios kann ich auch schon ein- und ausschalten.


    Ich hab alle möglichen Sachen installiert um auf den i2c-Bus zuzugreifen.
    Über einen Level-Shifter habe ich zwei PCF8574 (IO-Expander) sowie einen PCF8591 angeschlossen.


    Bei dem Befehl:

    Code
    1. pi@raspberrypi:~ $ sudo i2cdetect -y 1


    kommt tatsächlich als Antwort:
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- 38 39 -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --



    da bin ich schon ein bisschen stolz auf mich! :D


    Jetzt hab ich im Netz das Programm pcf8591.cpp gefunden:


    Wenn ich jetzt:

    Code
    1. pi@raspberrypi:~ $ sudo g++ pcf8591.cpp -o pcf8591


    eingebe, dann kommt

    Code
    1. /tmp/cc5ZLyXt.o: In function `readInput(int, int)':
    2. pcf8591.cpp:(.text+0x1c): undefined reference to `wiringPiI2CReadReg8'
    3. pcf8591.cpp:(.text+0x28): undefined reference to `wiringPiI2CReadReg8'
    4. /tmp/cc5ZLyXt.o: In function `main':
    5. pcf8591.cpp:(.text+0x48): undefined reference to `wiringPiSetupGpio'
    6. pcf8591.cpp:(.text+0x50): undefined reference to `wiringPiI2CSetup'
    7. pcf8591.cpp:(.text+0x154): undefined reference to `wiringPiI2CWriteReg8'
    8. pcf8591.cpp:(.text+0x1dc): undefined reference to `delay'
    9. collect2: error: ld returned 1 exit status
    10. pi@raspberrypi:~ $


    als Antwort.
    Muss ich da noch irgend was installieren? Ist das Programm nicht richtig (für mich)? Die Adresse 48 stimmt......


    Danke für Eure Hilfe,


    Gruss,


    Achim Meyer