- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 7 von 7

Thema: Einfacher Sketch zum OLED Display testendoh ich

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.02.2006
    Beiträge
    221

    Einfacher Sketch zum OLED Display testendoh ich

    Anzeige

    Praxistest und DIY Projekte
    Wollte folgenden sketch ausprobieren (aus: http://cyaninfinite.com/tutorials/in...with-attiny85/ ):
    doch ich erhalte die Fehlermeldung: ssd1306_char_f8x16' was not declared in this scope
    Vielleicht blickt jemand durch, warum es nicht klappt.
    Code:
    #define F_CPU 8000000UL      //ATtiny85 CPU Clock speed (8MHz optimal[8000000], 1MHz Default[1000000])
     
    #include <stdlib.h>
    #include <avr/io.h>
    #include <util/delay.h>
    #include <avr/pgmspace.h>
     
    // ----------------------------------------------------------------------------
     
    // --------------------- // Vcc, Pin 1 on SSD1306 Board
    // --------------------- // GND, Pin 2 on SSD1306 Board
    #define SSD1306_SCL PB0 // SCL, Pin 3 on SSD1306 Board
    #define SSD1306_SDA PB1 // SDA, Pin 4 on SSD1306 Board
     
    #define SSD1306_SA 0x78 // Slave address
     
    // ----------------------------------------------------------------------------
     
    #include "ssd1306xled.h"
     
    void setup(){  
      // Small delay is necessary if ssd1306_initis the first operation in the application.
      _delay_ms(40);
      ssd1306_init();
     
      ssd1306_fillscreen(0x00);
      ssd1306_char_f8x16(1, 2, "Photon OS");
      ssd1306_char_f6x8(1, 5, "Loading test...");
      _delay_ms(4000);
     
     
      uint8_t p = 0xff;
     
      for (uint8_t i = 0; i < 4; i++)
      {
        p = (p >> i);
        ssd1306_fillscreen(~p);
        _delay_ms(1);
      }
    }
     
    void loop()
    {
      ssd1306_fillscreen(0x00);
      ssd1306_char_f6x8(1, 0, "I'm a ATtiny85"); //Cannot start at 0 for x. Gives problem
     
      ssd1306_char_f6x8(1, 0, "I'm a small and mighty.");
      _delay_ms(5000);
     
      ssd1306_char_f6x8(1, 0, "Who says I can't run this LED screen?");
      _delay_ms(5000);
     
     
      ssd1306_char_f6x8(1, 0, "There am I running it now.");
      _delay_ms(5000);
     
    }

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.675
    .. Fehlermeldung: ssd1306_char_f8x16' was not declared in this scope .. #define SSD1306_SA 0x78 // Slave address ..
    Wenn ich mich richtig erinnere, hatte ich anfangs ebenfalls Schwierigkeiten mit dem SSD1306. Es war die falsche Adresse, da gibt es möglicherweise Unterschiede in Lieferchargen ?? Mein OLED arbeitet jedenfalls auf 0x3C. Vielleicht bemühst Du den (verbreiteten?) Trick mal die unterschiedlichen Adressen abzuklopfen? So ne Routine lohnt(e) sich bei mir doch öfters.
    Ciao sagt der JoeamBerg

  3. #3
    HaWe
    Gast
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Wenn ich mich richtig erinnere, hatte ich anfangs ebenfalls Schwierigkeiten mit dem SSD1306. Es war die falsche Adresse, da gibt es möglicherweise Unterschiede in Lieferchargen ?? Mein OLED arbeitet jedenfalls auf 0x3C. Vielleicht bemühst Du den (verbreiteten?) Trick mal die unterschiedlichen Adressen abzuklopfen? So ne Routine lohnt(e) sich bei mir doch öfters.
    wäre es wie du sagst, und nur die I2C dev addr wäre falsch, dann würde es immerhin fehlerfrei kompilieren und es würde danach nur nichts anzeigen.

    ssd1306_char_f8x16' was not declared in this scope
    sagt aber nichts anderes aus, als dass diese Funktion (d.h. ihre Deklaration) überhaupt nicht gefunden wird, weder lokal im Sketch noch in einer eingebundenen Lib.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    fehlt da evtl. ein include:
    #include <ssd1306xled8x16.h>

    weil ich dieses hier gefunden habe:

    #include <font6x8.h>
    #include <font8x16.h>
    #include <ssd1306xled.h>
    #include <ssd1306xled8x16.h>

    Siro
    Geändert von Siro (22.02.2018 um 13:06 Uhr)

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.02.2006
    Beiträge
    221
    die Adresse ist 0x3C, da habe ich schon herausgefunden.
    Mit einem Arduino Nano kann ich das das Display ansprechen.
    Aber der Attiny85 (China) macht große Schwierigkeiten, ich dachte ich kann da einfach so die library und den Sketch übernehmen und dann geht es.
    Wie gesagt, ich kann den Sketch nicht kompilieren, dann kommt die genannte Fehlermeldung (auch wenn ich noch #include <ssd1306xled8x16.h> dazunehme).
    Habe schon mehrere verschiedene Ansätze ausprobiert, welche ich im Netz so Herumschwirren, aber leider immer Fehlanzeige (dazu noch verbunden mit meinem „Viertelwissen“, Halbwissen wäre deutlich zu beschönigend .
    Es scheint hier nicht einen sicheren Weg zu geben, das OLED Display mit Attiny85 Board zum Laufen zu bringen.
    Falls doch, bitte ich um einen Tipp!

    Habe noch folgenden Sketch ausprobiert, leider auch bis jetzt ohne Erfolg (keine Anziehge am Display). Aber die Kompilierung und das Laden auf den Attiny geht hier wenigstens (aus: http://www.instructables.com/id/Disp...duino-ATtiny8/) :


    #include "SSD1306_minimal.h"
    #include <avr/pgmspace.h>
    #include "FileForOLED.h"

    SSD1306_Mini oled;

    void setup(){
    oled.init(0x3c);
    oled.clear();
    oled.startScreen();

    }

    void loop() {
    oled.drawImage(FileForOLED, 0,0, 128, ;
    }



    .....Nachtrag: mit diem letzten Code geht es nun doch!!!! ich hatte auch noch ein Kabelproblem auf dem Steckboard (), wenn mehrere Fehler zusammenkommen tut man sich einfach auch mit der Fehlersuche schwer... aber jetzt kann ich weitermachen, ich danke euch für eure Hilfe, sonst hätte ich vielleicht gar aufgegeben.
    Geändert von xxrider (22.02.2018 um 21:11 Uhr)

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    sonst hätte ich vielleicht gar aufgegeben
    Klicke auf die Grafik für eine größere Ansicht

Name:	Gib_niemals_auf.jpg
Hits:	7
Größe:	7,5 KB
ID:	33292
    Das hab ich auf meinem Arbeitstisch stehen jeder Fehler ist zu finden...

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.02.2006
    Beiträge
    221
    stimmt, gutes Motto!

    Mich hätte noch die Schriftgröße interessiert, ob ich die ändern kann (sie ist etwas zuuu tiny...).
    Ich denke sie ist in der Bibliothek "SSD1306_minimal.h" festgelegt:

    Code:
    #include "SSD1306_minimal.h"
    
    // a 5x7 font table
    const unsigned char  BasicFont[] PROGMEM = {
      0x00, 0x00, 0x00, 0x00, 0x00,   
        0x3E, 0x5B, 0x4F, 0x5B, 0x3E,     
        0x3E, 0x6B, 0x4F, 0x6B, 0x3E,     
        0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 
        0x18, 0x3C, 0x7E, 0x3C, 0x18, 
        0x1C, 0x57, 0x7D, 0x57, 0x1C, 
        0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 
        0x00, 0x18, 0x3C, 0x18, 0x00, 
    usw, usw....

Ähnliche Themen

  1. OLED Display gesucht SSD1331
    Von Ceos im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 6
    Letzter Beitrag: 28.03.2017, 14:41
  2. Tasten mit OLED-Display zeigt Videos
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 2
    Letzter Beitrag: 03.12.2014, 09:15
  3. Oled Display (VGM128064B1W01) mit SSD1305 Kontroller
    Von ChRiZ im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 26.01.2012, 11:10
  4. XMEGA-Board mit OLED-Display
    Von sdz55 im Forum AVR Hardwarethemen
    Antworten: 55
    Letzter Beitrag: 18.08.2009, 21:57
  5. Problem mit OLED Display Ansteuerung
    Von hütti im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 26.10.2006, 13:33

Berechtigungen

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

Labornetzteil AliExpress