- 3D-Druck Einstieg und Tipps         
Seite 8 von 10 ErsteErste ... 678910 LetzteLetzte
Ergebnis 71 bis 80 von 96

Thema: C++ fstream GPIO Trigger/Interrupt

  1. #71
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Anzeige

    Praxistest und DIY Projekte
    Ich glaube Du stellst Dir das schwerer vor als es ist. Das schwierige ist die Hardware Programmierung die erledigt aber der Kernel für Dich. Um ein I2C, SPI oder UART zu verwenden musst Du nicht wie bei Arduino (ohne Lib) in Hardware Registern herum schreiben das erledigt ja bereits der Kernel für Dich. Du musst nur das Devicefile öffnen und dann die Daten zu dem an der jeweiligen Schnittstelle hängendem Geräte schreiben. Ich vermute mal Du hast schon unter Linux Text in eine Datei geschrieben. Mit den Hardware Schnittstellen geht es genauso nur das der Text nicht auf der Platte oder SD-Karte landet sondern über die Schnittstelle beim angeschlossenem Gerät.

    Das interessante in einem Treiber für einen I2C Chip wo z.B. nur ein Arduino C++ Treiber vorhanden ist ist nicht das wie die Daten über die I2C Schnittstelle kommen sondern welche Daten der zum Beispiel für eine Porterweiterung dem Chip sendet um den Port als Ausgang zu benutzen und ein-/ausschalten. Das kann man mit ein bisschen suchen schon herausfinden.

  2. #72
    HaWe
    Gast
    Zitat Zitat von alexander_ro Beitrag anzeigen
    Ich glaube Du stellst Dir das schwerer vor als es ist. Das schwierige ist die Hardware Programmierung die erledigt aber der Kernel für Dich. Um ein I2C, SPI oder UART zu verwenden musst Du nicht wie bei Arduino (ohne Lib) in Hardware Registern herum schreiben das erledigt ja bereits der Kernel für Dich. Du musst nur das Devicefile öffnen und dann die Daten zu dem an der jeweiligen Schnittstelle hängendem Geräte schreiben. Ich vermute mal Du hast schon unter Linux Text in eine Datei geschrieben. Mit den Hardware Schnittstellen geht es genauso nur das der Text nicht auf der Platte oder SD-Karte landet sondern über die Schnittstelle beim angeschlossenem Gerät.

    Das interessante in einem Treiber für einen I2C Chip wo z.B. nur ein Arduino C++ Treiber vorhanden ist ist nicht das wie die Daten über die I2C Schnittstelle kommen sondern welche Daten der zum Beispiel für eine Porterweiterung dem Chip sendet um den Port als Ausgang zu benutzen und ein-/ausschalten. Das kann man mit ein bisschen suchen schon herausfinden.
    haha, naja, wenn du meinst...
    Die Erfahrung zeigt, dass es die wenigsten hinkriegen, die so was brauchen...
    ich werde dich mal ansprechen, wenn ich wieder mal einen Raspi Driver für ein Gerät suche, für das es nur Arduino Driver Libs gibt

  3. #73
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562

    Beitrag

    Zitat Zitat von alexander_ro Beitrag anzeigen
    Ich habe jetzt für meine I2C Klasse erst mal noch die Log Klasse fertig gebaut. Man muss jetzt zuerst ein Log Objekt erzeugen und beim Konstruktor der I2C Klasse mit übergeben. Je nachdem welche der Log Klassen man erzeugt ist dann das Log Ziel die Standard Ausgabe, eine Datei oder Syslog. Eine LogNoLog Klasse entfernt soweit möglich den Code aus der Klasse. Das erledigt die Optimierung des Compilers muss man natürlich dem Compiler sagen das er Optimieren soll.
    https://git.hts-software.de/cgit.cgi...a-Api/tree/Log
    https://git.hts-software.de/cgit.cgi...a-Api/tree/I2c
    Die Idee hier einen Logger zu übergeben ist ja super aber warum benutzt du eigene Loglevels ? Und nicht die die jeder Kennt Ok security kann ich mir noch ganz gut vorstellen das man das brauchen könnte.
    Ich bleibe bei https://github.com/muflihun/easyloggingpp das Funktioniert für mich ausreichend und hat auch die Möglichkeit den Logger an eine so / dll weiter zu geben.

    Code:
        START_EASYLOGGINGPP(argc, argv);
        if(utils::FileExists("loggerback.conf")) {
            // Load configuration from file
            el::Configurations conf("loggerback.conf");
            // Now all the loggers will use configuration from file and new loggers
            el::Loggers::setDefaultConfigurations(conf, true);
        }
    Und auch eine Möglichkeit eine Config als Datei zu übergeben. Also das was für eine Lib angesprochen wurde.
    Das überall ein TestModul gibt finde ich ja super hast du dich mal mit UnitTest beschäftigt das ist was ich unbedingt noch machen will aber in C++ ist das nicht ganz so Easy wie mit C# und Windows.
    Ich will die dann auch gleicht mit dem CMake script laufen lassen. Aber bis dahin ist noch ein weiter weg. Auch ein Build Server wäre Cool.

    Aber jetzt erstmal auf Funktion Programmieren. Im Auto habe ich der Zeit nur ein Loch das auch nicht so doole.
    Wenn ihr Lust auf Device Treiber habt:
    https://www.adafruit.com/product/1983 das Fliegt hier noch rum ich hätte es gerne als "PiTFT as Raw Framebuffer Device" die Touch Funktion ist nicht unbedingt notwendig. Als Routen anzeige direkt vorm Lenkrad. Leider bekomme ich nichts zu sehen auf dem Display. Und müsste auch wissen welche Pins gebraucht werden den das man es auf Stecken kann nutzt mir gar nichts da ich es ja absetzen will.

    Ja Träume habe ich viele aber so wenig Zeit und alleine ist es schon ein Monster Projekt.
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  4. #74
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Ich kann schon helfen so einen Treiber um zu bauen aber ich mache das aber nicht alleine. Da muss der betreffende schon mit machen ...

    Nur der Security ist ein eigener Loglevel die anderen benutzt der syslog. https://de.wikipedia.org/wiki/Syslog
    Ich habe nur viel weniger davon als der Syslog. Man kann die aber ja relativ leicht noch ändern. Ich werde mal schauen wie ich mit denen zurecht komme.

    Das geht zwar Richtung Unittest was ich da gemacht habe ist aber nur eine einfache Art weil mir jede Menge nötige Testfälle fehlen. Eigentlich habe ich das gemacht das jemand der so eine Klasse verwenden will zumindest einfache Beispiel hat wie das von mir gedacht war.

    Da Du ein Debian als Basissystem hast würde ich an Deiner stelle Debian Pakete machen. Das was Du da für einen Build Server brauchst ist schon vom Debian Projekt gemacht worden.

    Ich benutze das Orginal Raspi Touch Display. Darauf kann man mit OpenGL sogar 3D-Grafik ausgeben. Es belegt auch kaum zusätzliche Ports da es den eigenen Display Anschluß der Raspi benutzt (nicht den HDMI den anderen). Ein weiterer großer Vorteil ist das es ohne jede weitere Programmierung alles kann was man braucht. Ich benutze mit meinem noch eine Bluetooth Tastatur mit Touchpad. Dann kann man mit dem arbeiten wie mit einem normalem Computer. Sehr praktisch das ist ...
    Wegen der OpenGL Ausgabe habe ich auch schon mal ein Beispiel Programmiert. Es kann nicht viel Rendert nur Text auf einer Fläche und kann Tastatur eingaben lesen. Das Programm kann man aber nicht Innerhalb einer anderen Grafischen Oberfläche starten. Man muss vom Desktop mit strg + alt + f1 zu einem Terminal wechseln und es da starten.
    https://git.hts-software.de/cgit.cgi...a-Grafik/tree/

    Ich schau mir das an mit dem Display von Dir aber das was Du willst geht nicht mit allen Displays.
    <Edit>
    Das Display ist doch für einen Raspberry gemacht. Wenn Du es an einer anderen stelle haben willst kannst Du es ja mit Kabel verbinden. Schaltplan gibt es soch auch dafür. Dort müsste stehen welche Ports benutzt werden.
    </Edit>
    Geändert von alexander_ro (23.11.2018 um 14:03 Uhr)

  5. #75
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Ich glaube du hast mich nicht richtig verstanden.

    Wäre mir neu das Raspberry Display und HDMI gleichzeitig gehen. Open GL kommt ja von Graphik Chip und davon hat der PI nur einen. Ich will aber zwei Displays das kleine und das Große per HDMI. Wenn du den Schaltplan so gut verstanden hast kannst du mir ja sagen welche Pins ich brauche das "nur" das Display angeschlossen ist und die Hintergrund Beleuchtung. Tasten und Touch brauche ich nicht.

    Da das aber nur ein nettes gimik ist muss das wohl warten. Wahrscheinlich passt das mit den anderen Sachen am GPIO eh nicht zusammen und muss neu gedacht werden. Ich brauche ja auch ein Paar für andere Dinge Drehgeber, I²C für die Relais, Serial für Netzteil. Ich habe schon Displays für den I²C gesehen vielleicht ist das ein weg. Aber da ist es ja auch nicht mit dem Display alleine getan da braucht man ja auch ein paar Chips drum rum.

    https://github.com/adafruit/Adafruit_STMPE610
    Wenn ich das richtig deute hat das Ding zwei Schnittstellen SPI und I²C
    https://github.com/adafruit/Adafruit_ILI9341
    Das müsste der Display Teil sein


    Ich glaube nicht das es so einfach ist als Debian Packet auf genommen zu werden um dann die Infrastruktur mit nutzen zu können. Dafür ist das Zeugs viel zu unfertig. Wo ich noch keine Zeit für hatte sind die ganzen Public Build server die Nutzen kann vielleicht ist ja da was passendes dabei.

    Bitbucket Pipelines ist auch so was und da da das Repos liegt sollte ich mir das ansehen aber 50 Minuten pro Monat sind halt auch schnell auf gebraucht.
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  6. #76
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Ich benutze den HDMI nicht ich fand den auch schon immer Überflüssig vermutlich wollten die aber das man das Teil an einen Fernseher stöpseln kann. Das Original Display ist ja relativ groß. OpenGL muss nicht Hardware Grafik sein. Die OpenSource Version von OpenGL nennt sich Mesa3D und kann auch Software Simulation die ist halt langsam logisch.

    Welche Version des Displays hast Du denn?
    Aus dem Schaltplan kann man nicht genau erkennen was Touch und Tasten oder Display ist. Da wirst etwas experimentieren müssen. Was man aber erkennen kann ist welcher Anschluß des Displays mit welchem am Raspi verbunden ist. Es gibt Displays die eine serielle Schnittstelle haben die brauchen sonst keine Chips drum herum. Werden aber auch anders angesprochen also nicht als Framebuffer vom Linux Kernel. Ist halt eine Frage wie schnell es sein muss.

    Das STMPE610 ist ein Touchscreen Controller die haben eigentlich immer eine serielle Verbindung. Das reicht um eine Reihe XY Positionen an die CPU zu senden. Das andere ist aber ein Display für einen Arduino. Wolltest Du das nicht an den Raspi anschließen?

    Debian hat ja auch einen Entwickler Zweig ich meinte aber auch nicht als Paket bei Debian. Die Software die Debian zur Erstellung ihrer Pakete benutzen ist genauso OpenSource wie der Rest. Die kannst Du auch auf einem eigenen Rechner benutzen und damit ein Debian Paket erzeugen das andere dann einfach bei sich installieren können. Lohnt sich aber vermutlich erst wenn es eine gewisse Stabilität erreicht hat. Entwickler die es Testen sollen oder mit Entwickeln müssen so den Sourcecode haben und haben kein Problem das zu übersetzen.

    Ich glaube nicht das ich Bitbucket benutzen würde. Vernünftig kostet es eine Menge Geld und sonst sind die Enschränkungen zu groß. OpenSource Projekte wenn pro User zahlen müssen kann das ganz schön teuer werden. Ich betreibe für einige als Entwicklungsrechner im Internet einen Raspi. Das läuft gut und kostet nicht viel und egal wie viele User es sind es kostet nicht mehr. Sollte mal das Team zu groß werden für einen Raspi kann man das leicht als virtuellen Rechner auf größere Server legen.

  7. #77
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Also am HDMI hängt das Waveshare 7" bei dem PI den ich zur Display Test nutze ist es ein ganz Normaler Monitor also ein HDMI zu DVI Kabel ist glaube ich 19".

    Die genaue Version von dem Adafruit 2,8" kann ich dir leider nicht sagen war auch ein Geschenk. Hinten steht STMPE610 und ILI9341 drauf wenn man den Offiziellen weg geht mit script wird auch ein Treiber names ILI9341
    geladen. Lade gerade noch mal ein ältere Version vom Debian runter weil auf der Seite steht sie habe mit der Getestet.

    https://learn.adafruit.com/adafruit-...easy-install-2

    Habe aber wenig Hoffnung das es mich weiter bringt.

    Ich denke so lange ich es alleine mache passt Bitbucket es gab bis jetzt erst einmal einen der ein bisschen was für das USB gemacht hat. Mal sehen wie wie sich das alles entwickelt. Bis jetzt habe ich nur immer gehört melde dich mal wenn es fertig ist oder mit Kodi und Navit geht es auch. Siehe https://raspicarprojekt.de/. Oder für was braucht man das kann mein Auto jetzt schon. In sofern sehe ich noch nicht die Gefahr das ich mehr als eine Datensicherung brauche. Ich träume halt oft vom richtig machen aber wenn man es genau nimmt für was ?

    Das mit dem Internet Pi musst du mir bitte mal näher beschreiben ich verstehe das gerade nicht so wirklich.
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  8. #78
    HaWe
    Gast
    witzig, die Adafruit Displays hatte ich auch sofort im Sinn, als ich die fehlenden Raspi C++ Treiber dafür ansprach.
    Ich habe ein Featherwing 3,5" Touchscreen, und ich bräuchte tatsächlich den kompletten Funktionsumfang, inkl. Touch und Buttons und Zeichenfunktionen, per SPI.
    https://www.adafruit.com/product/3651

    Normale Ausgabe auf HDMI, aber zur Steuerung der Buttons mangels "Delphi for Raspbian" als 2. Display, mit allen Adafruit GFX, Touch, Fonts und Adafruit HX8357 Grafik-Funktionen.
    https://learn.adafruit.com/adafruit-...-graphics-test

    soll ja so einfach sein, Arduino Libs auf den Raspi zu portieren

  9. #79
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Also ich gebe mit dem Display auf entweder ist es Kaputt oder zu alt. Wüsste zur Zeit nicht was ich noch machen kann dem Teil ein Bild zu entlocken. Bzw prüfen soll ich finde keine Fehlermeldung.

    https://www.adafruit.com/product/1601
    https://learn.adafruit.com/assets/13040

    Wie gesagt nur Zeichnen würde mir reichen.

    Ich kenne jetzt die die Framebuffer Schnittstelle nicht aber wenn man da was drum macht zum Zeichen würde das glaube ich reichen und vor allem könnte man so ein Haufen einfacher Displays unterstützen.
    https://github.com/notro/fbtft es sind ein haufen in den Linux Kernel gewandert. @HaWe vielleicht ist da auch dein Treiber dabei.

    http://marcosgildavid.blogspot.com/2...orking-on.html
    da hat einer erklärt wie es geht.

    sudo fbi -T 2 -d /dev/fb1 -noverbose -a adapiluv320x240.jpg so kann man da ein Bild hin schieben so teste ich auch.

    Wieder eine Nacht ohne vorwärts kommen bin schon ein bisschen frustriert...
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  10. #80
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Ich kenne die Adafruit Displays nicht bisher habe ich von der Firma nie etwas gekauft. Wenn ich das richtig sehe auf den Bildern hat das einen zwei Stecker um eine Ecke angeordnet und das andere nur Stecker an einer Seite. Soll natürlich auch schon vorgekommen sein das ein Display kaputt ist das kann ich aber so auch nicht feststellen. Kannst Du vielleicht mal ein Foto von vorne und hinten irgendwo posten. Vielleicht finde ich ja einen Anhaltspunkt welches es ist.

    Bei der Elektor haben die so einen Audio DAC gebaut für den auch ein Display. Das habe ich ganz Problemlos zum laufen bekommen. Musste nur den Kerneltreiber von der Internetseite installieren und einstellen. Dann zeigt er vom booten bis zum Desktop alles auf dem Display an und es geht auch der Touch.
    https://www.elektormagazine.com/file...y%20Pi%202.pdf
    auf Seite 13 ist der Link zum Displayhersteller.
    https://www.waveshare.com/wiki/3.5in...LCD_(A)#Driver

    Wegen dem umschreiben der Treiber ging es aber oben nicht um ein Framebuffer Display Treiber. Das Problem ist nämlich nicht das Umschreiben sondern das es bei Arduino keine Framebuffer Devices gibt die sind Linux spezifisch. Also ist es kein Umschreiben sondern eine neu Entwicklung das ist etwas ganz anderes. Ich verstehe aber auch nicht warum man unbedingt ein Display benutzen muss das nicht kompatibel ist. Für den Raspi gibt es wirklich viele Displays die speziell für die Hardware gebaut sind. Man muss nur schauen weil manche der Displays parallele Schnittstellen haben und damit fast alle Ports belegen.

    Der Internet PI ist einfache ein PI an einer Internetverbindung mit einer öffentlichen statischen IP-Adresse. Den kann man dann als Server im Internet benutzen für git, web, mail oder was auch immer. Wenn man nicht tausende User hat kommt der damit Problemlos zurecht.

    Warum es in Deutschland so schwer ist jemanden zu finden der an einem Projekt mit macht ist eine andere Geschichte ich will das jetzt nicht näher ausführen weil es eine länger Geschichte ist.

Seite 8 von 10 ErsteErste ... 678910 LetzteLetzte

Ähnliche Themen

  1. Benötige Hilfe zu AT32U3C und GPIO
    Von xrzr im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 10.11.2015, 19:54
  2. Respberry Pi GPIO mit C++ und QT
    Von Basti1204 im Forum Raspberry Pi
    Antworten: 0
    Letzter Beitrag: 06.03.2013, 00:01
  3. [ERLEDIGT] Raspberry Pi GPIO
    Von Kampi im Forum Raspberry Pi
    Antworten: 4
    Letzter Beitrag: 04.11.2012, 23:45
  4. GPIO-Register Ansprechen
    Von kmrish im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 7
    Letzter Beitrag: 14.07.2011, 10:45
  5. schmitt-trigger an interrupt
    Von Bluesmash im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 19.06.2005, 23:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test