SSD1306 via SPI

  • 1
  • 2
  • Page 2 of 2
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: SSD1306 via SPI

 · 
Posted: 18.08.2015 - 18:26  ·  #9
Hallo Harry,
Quote
Rolf du darfst das auch gerne als Demo mit aufnehmen.

Ist schon passiert. Danke!

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: SSD1306 via SPI

 · 
Posted: 25.10.2015 - 11:42  ·  #10
Ich trau es mich wieder einmal nicht sagen (ja es war Sommerzeitumstellung) ..... beim obigen GPS-Tacho2-Demo nach Zeile 383 das hier einfügen:
Code
HourNum:=Dummy;
dann sollte es endlich vollkommen fehlerfrei funktionieren. Irgendwie ist die Umrechnung UTC zu CET/CEST nicht ganz so einfach. Man muß für die Sommerumschaltzeitberechnung doch die längengradkorrigierte UTC nehmen *seufz*

Gruss
Harry

..... sieht dann so aus:
Code

If NMEA.GPSLonInd='W'
      then
        Dummy:=Dummy-(EMI div 1500);
      else
        Dummy:=Dummy+(EMI div 1500);
      EndIf;
      
    HourNum:=Dummy;                              // doch längengradkorrigierte Zeit

    If STime(HourNum)=true                       // Sommerzeit ?
      then                                       // vor Uhrzeit/Datums-Korrektur
        Dummy:=Dummy+1;
      EndIf;
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: SSD1306 via SPI

 · 
Posted: 06.03.2018 - 15:35  ·  #11
Es hat mir doch keine Ruhe gelassen und deshalb hab ich den GPS-Tacho mal richtig aufgebaut :)

Gruss
Harry
You must be logged in or your permissions are to low to see this Attachment(s).
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: SSD1306 via SPI

 · 
Posted: 04.01.2020 - 17:19  ·  #12
Heute habe ich festgestellt, daß die Berechnung des Wochentages eine Fehler hat. Seltsamerweise hat es aber anscheinend bis vor dem 01.01.2020 funktioniert.

Folgendes muß geändert werden:
Code

Const
  MonthConst      : Array[1..12] of Integer = (0,3,3,6,1,4,6,2,5,0,3,5);
  //YearConst kann gelöscht werden

Function CalcDay:Byte; // Berechnung des Wochentages So=0&7; Mo=1, Di=2, Mi=3....
  Var TZ, MZ, JHZ, JZ, SJK, DayResult : Integer;
  Begin
    TZ:=DayNum Mod 7;
    MZ:=MonthConst[MonthNum];
    JZ:=(YearNum+(YearNum div 4)) Mod 7;
    JHZ:=(3-(CentNum Mod 4))*2;
    If ((MonthNum in [1..2]) and (((YearNum Div 4)*4)=YearNum))
      then
        SJK:=-1;
      else
        SJK:=0;
      EndIf;
    DayResult:=(TZ+MZ+JHZ+JZ+SJK) Mod 7;
    Return(Lo(DayResult));
  End CalcDay;


Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2078
Registered: 03 / 2003
Subject:

Re: SSD1306 via SPI

 · 
Posted: 06.03.2021 - 10:08  ·  #13
Eine kleine Ergänzung, .....
ich habe ein paar OLED-Displays (128x64 Pixel) mit diesem Controller in die Finger bekommen, die sich seltsam verhalten haben. Auf diesen war eine Ausgabe auf X-Koordinaten 0 und 1, sowie 126 und 127 nicht möglich.
Des Rätsels Lösung: Die Displays, die ich bisher in den Fingern hatte, haben das Display-RAM Adresse 0 auf Column-Adresse 0 gemappt und diese anderen (warum auch immer) Display-RAM Adresse 2 auf Column-Adresse 0.
Das heißt, man muß das RAM-Mapping einfach um 2 verscheiben:
Code
UserDevice GraphIOS(Cmd: Byte; Arg: Byte);
  Begin
    If cmd = 0
      then
        WriteLCD($02,false);     // Lo-address nibble %0000xxxx
        WriteLCD($10,false);     // Hi-address nibble %0001xxxx
        WriteLCD($B0+Arg,false);
      else
        WriteLCD(Arg,true);
      EndIf;
  End GraphIOS;


Zum Vergleich meine bisherigen Displays:
Code
WriteLCD($00,false);
WriteLCD($10,false);
WriteLCD($B0+Arg,false);


Gruss
Harry
  • 1
  • 2
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   92   106 · Page-Gen-Time: 0.02221s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI