Witam forumowiczów.
Posiadam wyświetlacz OLED ze sterownikiem SSD1306. Próbuję zmienić jasność ekranu bazując na fragmencie kodu ze strony: https://github.com/ThingPulse/esp8266-oled-ssd1306/issues/134
Na wstępie dodam, że wyświetlacz działa poprawnie tzn. posiadam w pełni funkcjonalną bibliotekę do jego obsługi, a moim celem jest napisanie funkcji, która umożliwi zmianę jasności ekranu (ciemniej, jaśniej).
Pseudokod mojej funkcji wygląda następująco:
Gdzie pod zmienne: precharge, contrast, com wpisane zostają odpowiednie wartości. Wyświetlacz inicjalizowany jest następującymi wartościami:
Krótko mówiąc działa sprawnie, ekran świeci dosyć jasno. Teraz przyszła kolej na zadanie pytań odnośnie tych 3 parametrów: PRECHARGE, CONTRAST oraz COM DESELECT. Przyznam szczerze, że opisy z dokumentacji są dla mnie niezrozumiałe i nie wiem w jaki sposób należy dobierać poszczególne wartości aby ekran przyciemnić bądź rozjaśnić.
W dokumentacji można znaleźć takie wyjaśnienia:
Nie rozumiem o co w tym chodzi. "Czas trwania okresu ładowania wstępnego"? DCLK?
Ten zapis akurat rozumiem: dopuszczalne wartości kontrastu to przedział od 0 do 255.
Tego zapisu również nie rozumiem. "Wyjście regulatora"?
Moje pytania:
1. Co robi parametr PRECHARGE? Jakie może przyjmować wartości i dlaczego wartość domyślna to 0xF1?
2. Co robi parametr COM DESELECT? Jakie może przyjmować wartości i dlaczego wartość domyślna to 0x40?
3. W jaki sposób operować wartościami, aby obniżyć/zwiększyć jasność ekranu?
Pozdrawiam.
Posiadam wyświetlacz OLED ze sterownikiem SSD1306. Próbuję zmienić jasność ekranu bazując na fragmencie kodu ze strony: https://github.com/ThingPulse/esp8266-oled-ssd1306/issues/134
Na wstępie dodam, że wyświetlacz działa poprawnie tzn. posiadam w pełni funkcjonalną bibliotekę do jego obsługi, a moim celem jest napisanie funkcji, która umożliwi zmianę jasności ekranu (ciemniej, jaśniej).
Pseudokod mojej funkcji wygląda następująco:
Kod: C / C++
Gdzie pod zmienne: precharge, contrast, com wpisane zostają odpowiednie wartości. Wyświetlacz inicjalizowany jest następującymi wartościami:
Kod: C / C++
Krótko mówiąc działa sprawnie, ekran świeci dosyć jasno. Teraz przyszła kolej na zadanie pytań odnośnie tych 3 parametrów: PRECHARGE, CONTRAST oraz COM DESELECT. Przyznam szczerze, że opisy z dokumentacji są dla mnie niezrozumiałe i nie wiem w jaki sposób należy dobierać poszczególne wartości aby ekran przyciemnić bądź rozjaśnić.
W dokumentacji można znaleźć takie wyjaśnienia:
Cytat:
10.1.17 Set Pre-charge Period (D9h)
This command is used to set the duration of the pre-charge period. The interval is counted in number of
DCLK, where RESET equals 2 DCLKs.
Nie rozumiem o co w tym chodzi. "Czas trwania okresu ładowania wstępnego"? DCLK?
Cytat:
10.1.7 Set Contrast Control for BANK0 (81h)
This command sets the Contrast Setting of the display. The chip has 256 contrast steps from 00h to FFh. The
segment output current increases as the contrast step value increases.
Ten zapis akurat rozumiem: dopuszczalne wartości kontrastu to przedział od 0 do 255.
Cytat:
10.1.19 Set VCOMH Deselect Level (DBh)
This command adjusts the VCOMH regulator output.
Tego zapisu również nie rozumiem. "Wyjście regulatora"?
Moje pytania:
1. Co robi parametr PRECHARGE? Jakie może przyjmować wartości i dlaczego wartość domyślna to 0xF1?
2. Co robi parametr COM DESELECT? Jakie może przyjmować wartości i dlaczego wartość domyślna to 0x40?
3. W jaki sposób operować wartościami, aby obniżyć/zwiększyć jasność ekranu?
Pozdrawiam.