INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
OLED SSD1306 IC² Aktuallisierungrate Langsam
28.01.2016, 13:02 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2016 13:17 von hotsystems.)
Beitrag #9
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
Damit zeigt sich, dass in deiner Loop der Fehler steckt.
Nimm die ganzen doppelten Übergaben raus.

Oder setze einfach die Variable direkt in die Loop und übergebe diese in der "do-Schleife".

Code:
void loop() {
    while (ss.available() > 0)
      gps.encode(ss.read());
      int vitesa1 = atoi (zdop.value());     // Wert in Variable

   u8g.firstPage();
    do {
      u8g.setFont(u8g_font_unifont);
      u8g.drawStr( 0, 10, vitesa1);          
      
      //int vitesa1 = atoi (zdop.value());    
      //u8g.setPrintPos(0, 40);
      //u8g.print(vitesa1);                        
    } while ( u8g.nextPage() );
}

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 15:48
Beitrag #10
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
für deine Feststellung das es so schneller geht aber die anzeige nicht mehr stimmt gibt es zwei einfach gründe.
es geht schneller weil du nicht mehr mit der do/while schleife arbeitest die offensichtlich viel zeit frisst.
die anzeige stimmt nicht mehr weil du vergessen hast "u8g.setPrintPos(0, 40);" zu verwenden also die Startposition auf dem Display zurück zu setzen.

Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 16:32
Beitrag #11
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
@avoid
Bist du sicher, das er den Befehl "u8g.setPrintPos(0, 40);" hier benötigt.
Meines erachtens wir der nur gebraucht, wenn er per "print"-Befehl etwas ausgeben möchte.
z.B.
Code:
u8g.setPrintPos(0, 40);
u8g.print(vitesa1);

Er sollte einfach mal meinen obigen Vorschlag befolgen und die Variable direkt in der Loop befüllen.
Ob das hilft, kann ich nicht sagen, da ich kein GPS hier habe und es testen könnte.
Nur meine Projekte habe ich entsprechend meinem Beispiel erstellt und da geht es schnell.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 17:19
Beitrag #12
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
ich denke schon. er muss doch irgendwo angeben wohin auf dem Display er schreiben will sonst wird doch einfach dahinter weiter geschrieben wenn der nächste Befehl zum schreiben kommt. aber ich muss auch zugeben das ich mich vom u8g bisher erfolgreich fern gehalten habe.

Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 17:34
Beitrag #13
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
(28.01.2016 17:19)avoid schrieb:  ich denke schon. er muss doch irgendwo angeben wohin auf dem Display er schreiben will sonst wird doch einfach dahinter weiter geschrieben wenn der nächste Befehl zum schreiben kommt. aber ich muss auch zugeben das ich mich vom u8g bisher erfolgreich fern gehalten habe.

Ja, u8g ist nicht ganz trivial, liefert aber sehr gute Ergebnisse, wenns funktioniert. Wink

Um die Anfangsposition zu setzen, hat er doch im oberen Teil der Schleife schon den Befehl "u8g.drawStr( 0, 10, zdop.value());" stehen (0 und 10 ist die Position) und das reicht. Er aktualisiert ja immer erst wenn etwas neues ansteht.
Warum er überhaupt den "print"-Befehl einsetzt, entzieht sich eh meiner Kenntnis.
Ich habe auch schon vermutet, dass ist das eigentliche Problem. Aber der TO hat es verneint.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 18:50 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2016 19:54 von b3ta.)
Beitrag #14
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
So nochmal ich aber vom rechner aus !

So nochmal Versucht die änderungen:

So Aktualisiert er egal wie Langsam sobald das do/while bei ist.
Ob print oder draw bleibt es gleich.
Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);
TinyGPSCustom zdop(gps, "GPVTG", 7); // $GPVTG sentence, 7th element
  
void setup() {
  ss.begin(GPSBaud);
}

void loop() {
  while (ss.available() > 0)
    gps.encode(ss.read());

    u8g.firstPage();
    do {
      u8g.setFont(u8g_font_unifont);
      u8g.drawStr( 0, 10, zdop.value());
    } while ( u8g.nextPage());
}

Und so Aktualisiert er sehr schnell ober halt mit Fehlern im unteren bereich der zahlen. Als würde die zahlen vom vorigen sketch in der unteren pixel reihe eingebrannt sein.
Auch hier kein unterschied ob pint oder draw.
Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);
TinyGPSCustom zdop(gps, "GPVTG", 7); // $GPVTG sentence, 7th element

void setup() {
  ss.begin(GPSBaud);
}

void loop() {
  while (ss.available() > 0)
    gps.encode(ss.read());

  u8g.firstPage();
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 0, 10, zdop.value());
  u8g.nextPage();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 19:19
Beitrag #15
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
Dann mach es doch mal so, wie ich es vorgeschlagen habe.
Variable an den Anfang der Loop.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 19:52 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2016 19:53 von b3ta.)
Beitrag #16
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
Ach du meinst die ? TinyGPSCustom zdop(gps, "GPVTG", 7); // $GPVTG sentence, 7th element

Ach so nee sorry die ist garnicht mehr drinn : int vitesa1 = atoi (zdop.value());
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  LCD Langsam MeisterQ 6 261 06.09.2016 17:03
Letzter Beitrag: MeisterQ
  Problem mit OLED 0.96" Display torsten_156 3 534 03.04.2016 15:10
Letzter Beitrag: hotsystems
  OLED Display anzeige von Logo falsch ! b3ta 0 332 23.01.2016 15:12
Letzter Beitrag: b3ta
  Referenzfahrt zu langsam Michi87x 5 978 04.12.2014 09:33
Letzter Beitrag: Michi87x
  GPS-Tracker mit Adafruit Ultimate GPS breakout und 128x54 OLED Chingstar 1 1.961 29.05.2014 20:29
Letzter Beitrag: Mark
  Adafruit Display 128x32 SPI OLED audis3stage4 3 3.081 30.04.2014 05:19
Letzter Beitrag: rkuehle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste