- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 21

Thema: Arduino IDE findet Display-Treiber nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Liegt die Inkompatibilität an der akt IDE 2.3.3 ?
    Aus der Ferne:
    Die Bibliotheken sind ja alle über Git im Netz einsehbar und veröffentlicht. Soweit ich verstanden habe, erbt der Datentyp Adafruit_SSD1306 die setFont()-Funktion von Adafruit_GFX.

    Leider hast Du just die Deklaration Deines "display"-Objektes aus dem obigen Quellcode herausgelöscht. Kann also sein, dass Du versehentlich das display als irgendwas völlig Anderes deklariert hast.
    Kann aber auch sein, dass der Compiler uralte, mehrfach installierte Bibliotheken auf Deiner Platte findet. Da kannst Du mal über die Dateisuche nach "Adafruit_GFX.h" stöbern und in den Dateien verifizieren, dass sie auch wirklich alle das setFont() enthalten.

    An der IDE kann es nur indirekt liegen, wenn sie dem Compiler beim Start falsche Pfade vorgibt. Aber da würde ich zuletzt suchen. Das wäre wahrscheinlich schon früher aufgefallen.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Hallo "Holomino"

    Ich habe Anfang Okt´24 die alte IDE-Version gelöscht und die IDE V2.3.3 neu installiert. Somit sollte der integrierte Compiler "nagelneu" sein.

    Habe die Platten mal nach "adafruit_gfx.h"" durchsucht - und 3 mal gefunden.
    Alle innerhalb diverser Ordner der gelöschten Arduino-Version v1.8.5 - teils unterschiedliche Dateigrößen zw. 6-12kB
    Keiner dieser "adafruit_gfx.h" beinhaltete "setfont"!

    "Adafruit_SSD1306.h" ist 1 ,al vorhanden. Aber auch der beinhaltet kein "setfont".
    Könnte hier der Generalfehler liegen?

    Folgend die gesamte Deklaration und Einrichtung des Displays - fällt euch hier ein Fehler auf?
    Code:
    #include <_Teensy.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>           //Display-Ansteuerung
    #include <splash.h> 
    #include <Fonts/FreeSans9pt7b.h>        //Schriftarten, Sans, 9px hoch, normal
    #include <Fonts/FreeSans12pt7b.h>       //Schriftarten, Sans, 12px hoch, normal
    #include <Fonts/FreeSansBold9pt7b.h>    //Schriftarten, Sans, 9px hoch, fett
    #include <Fonts/FreeSansBold12pt7b.h>   //Schriftarten, Sans, 12px hoch, fett
    
    #define OLED_RESET -1                       //Display; Reset pin # (or -1, da kein Reset-Pin am Display)
    #define SCREEN_WIDTH 128                    //Display; OLED display Breite, in pixels
    #define SCREEN_HEIGHT 64                    //Display; OLED display Höhe, in pixels
    
    const int ADC_Aufloesung = 8192;            //Auflösungsstufen bei ADC=13bit (2^13bit) = 0,61mV
    ...
    
    //Display initianlisieren
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);   //Display, VELLEMAN VMA438
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Stronk!
    Du könntest versuchen, die Libs direkt aus den Git-Repositories zu ziehen:
    https://github.com/adafruit/Adafruit-GFX-Library
    und
    https://github.com/adafruit/Adafruit_SSD1306

    Da ist jeweils ziemlich weit oben eine mit "<>Code" beschriftete knallgrüne Schaltfläche, wo Du nach dem Draufklicken "Download ZIP" wählen kannst. In diesen Quellen jedenfalls ist das setFont() auch deklariert.
    In Arduino installiert bekommst Du den Kram dann über Sketch->Bibliothek einbinden->ZIP Bibliothek hinzufügen.
    (Zumindest bei meiner alten Arduino-Version läuft das so)

    Wenn das nicht funzt oder immer noch nichts bringt:
    Im Git steht auch drin, wann der/ die Entwickler das letzte mal dran herumgefummelt haben.
    Da steht bei der GFX zumindest was von vor drei Wochen und damit bestehen also gute Chancen, dass das Projekt noch aktiv ist und man bei (ganz liebevoll geschilderten) Fragen oder Problemen nicht nur Antworten bekommt, sondern auch ein bisschen über die Gründe hört. Unter "issues" kannst Du fragen und vorher auch schauen, ob es zu Deinem Problem nicht sogar schon eine Äußerung gibt.

    Aber sei lieb zu diesen Menschen. Das ist Open Source und viele machen das freiwillig.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    DAAAAAANKE
    Dein Hinweis war Gold wert - ich hatte endlich einen "Anpack" - habe alle adafruit_gxf.h und adafruit_ssd1306.h gelöscht und über IDE/Bibliotheksveraltung neu installiert.
    Diese Fehlermeldung ist weg!

    Jetzt habe ich eine Andere - wahrscheinlich ein Syntaxfehler;

    Fehlermeldung;
    Code:
    Compilation error: no matching function for call to 'Adafruit_SSD1306::println(const char [14], int&, int, const char [3])'
    Beispielcode,
    wobei die "2" die Nachkommastellen begrenzen soll. Steckt hier der Fehler?
    Solldarstellung im Display, Bsp: "Spannung MW2: 3,36 V"
    Code:
    int Vmw1 = 0;
    ...
    display.println("Spannung MW2:", Vmw1, 2, " V");
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Ok, die Fehlermeldung besagt, dass es in dem display-Objekt keine zu den übergebenen Parametern passende println-Funktion gibt. (In C++ nennt sich das Funktionsüberladung, wenn mehrere gleichnamige Funktionen mit unterschiedlichen Parametern angeboten werden)

    Offensichtlich erbt der Typ "Adafruit_GFX" über "print.h" das println vom irgendwo im Arduino-Core verborgenen "Print"-Typ.

    Das Miese: Den "Print"-Datentyp finde ich zwar als Git, aber ohne Kommentare und die Parameternamen sagen mir auch nix.
    Das Gute: Wenn's im Core liegt, gibt's üblicherweise auch eine Hilfe als Referenz (suchmaschinere mal nach "Arduino Print").
    Das Miese: Irgendwas hat zur Zeit die Referenz zerschossen, zumindest bei mir.
    Das Gute: Es gibt noch ein Serial.Println() in der Referenz. Das sieht ganz ähnlich aus.

    Da müsstest Du sehen, was mit dem println() geht und was Du davon brauchen kannst.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Moin und Danke.

    Auch ich habe ähnliche Nicht-Infos über println() gefunden.
    Vielleicht ist es auch der falsche Weg, die variable "Vmw1" erst innerhalb der Display-Anzeige zu kürzen.
    Ich werde mich heute einmal über Nachkommastellen einlesen.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Ja, das wars! Programm läuft jetzt.

    statt:
    Code:
    ...
    display.println("Spannung MW1: ", Vmw1, 2, " V");
    ...
    folgenden Syntax:
    Code:
    ...
    String Anz_Vmw1 = "Spannung MW1: " + String(Vmw1, 2) + " V"; 
    display.println(Anz_Vmw2);
    ...
    Hintergrund:
    println() (aus der Bibliothek adafruit_1306.h) kann nur 1 Parameter übergeben.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

Ähnliche Themen

  1. Programm findet Controler nicht
    Von Barung im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 26.04.2009, 13:04
  2. Windows findet Datei von Treibersoftware nicht
    Von Da_Vinci13 im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 11.02.2009, 15:09
  3. Probleme mit Lib (findet Funktionen nicht)
    Von facile im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 07.02.2009, 11:34
  4. WinAvr findet Atmega32 nicht
    Von bugmenot im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 12.12.2008, 17:20
  5. Compiler findet Labels nicht???
    Von EDatabaseError im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 07.11.2006, 16:44

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test