Skip to content

Latest commit

 

History

History

2-BACKLIGHT

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Piu' sotto, al termine della lingua inglese trovi il testo in italiano. Below English text you'll find the Italian version



Handling backlight

this library can handle display backlight in two different modes:

  • as a switched on-off light
  • as a dimming backlight

Backlight mode is set by the macro #define "DISPLAY_DIMMER_MODE" in "z_displ_ST7735.h" file

  • If this #define is commented, backight is: switching on-off backlight
  • Uncommenting the macro #define, backlight is: dimming backlight

ON-OFF mode Backlight

("#define DISPLAY_DIMMER_MODE" commented in "z_displ_ST7735.h" file)

setup a handling pin on CubeMX.

Define a GPIO pin with this configuration:

pinname to assign output level speed relevance mode pull-up/down
DISPL_LED low - Output push pull No pull-up/down

connect the LED pin of the display to DISPL_LED

That's all. Function "Displ_BackLight" provides these commands (function parameter):

parameter description
'0' display off
'1' display on
'F' display on(as same as comand '1')
'Q' no action

"Displ_BackLight" function returns display status (0=off, 1 = on) so: command 'Q' is to query display status

Dimming mode Backlight

("#define DISPLAY_DIMMER_MODE" uncommented in "z_displ_ST7735.h" file)
Function "Displ_BackLight" handle backlight in PWM.

setup a handling pin on CubeMX

Define a PWM pin:

  • enable a PWM channel on a "general purpose" timer (e.g. CH1 on TIM3)
  • setup channel as "PWM mode 1" and "Counter mode UP"
    ARR register ("Auto Reload Register" or "Counter period" on CubeMX) defines the number of steps of display light. E.g.: set it to 10 to get 10 light steps available (from 1 to 10, and level 0="off")
    Higher is value imposed to PSC register (prescaler) and lower are power needed and EMI (see the GPIO software guidelines by STM), but PSC value must be not too high: the value ((uC clock / PSC)/ ARR) must be > 100 Hz, avoiding flickering
pinname to assign output level speed relevance mode pull-up/down
DISPL_LED low - Alternate Function (Timer) No pull-up/down

setup z_displ_ST7735.h

align to CubeMX macro parameters:
#define BKLIT_TIMER set used timer (e.g. TIM3)
#define bklit_t set used timer (e.g. htim3)
#define BKLIT_CHANNEL set used channel (e.g. TIM_CHANNEL_2)
#define BKLIT_CCR indicate the preload register involved by PWM (e.g. CCR2)

setup parameters:
You could invoke function with "standby", setting backlight to this predefined value:
#define BKLIT_STBY_LEVEL set standby level (between 0 and ARR)
This is the backlight level set on initialization:
#define BKLIT_INIT_LEVEL set startup level (between 0 and ARR)

Function "Displ_BackLight" provides these commands (function parameter):

parameter description
'0' display off
'1' display to highest level (=ARR)
'F' display to highest level (as same as comand '1')
'I' initial display setup
'S' display to standby level
'W' display level before last standby (wakeup from standby)
'+' 1 step level increase
'-' 1 step level decrease
'Q' no action

"Displ_BackLight" function returns display status (current level) so: command 'Q' is to query display status
PLEASE NOTE: if dimming, run Displ_BackLight('I') on startup! It will also start the timer clock.

Next steps

That should be enough, you should have already done this step:

now you can move to these sections:




Gestire la retroilluminazione

questa libreria permette di gestire la retroilluminazione del display in due modi:

  • con un interruttore acceso/spento
  • con regolazione di luminosità variabile

Il modo di illuminazione è definito dalla macro define "DISPLAY_DIMMER_MODE" nel file "z_displ_ILI9XXX.h".
- Se la definizione è commentata la retroilluminazione è gestita in modalità acceso/spento
- Togliendo il commento a inizio riga si abilita la gestione con illuminazione regolabile

Modalità acceso/spento

("con la riga #define DISPLAY_DIMMER_MODE" commentata nel file "z_displ_ILI9XXX.h")

configura su CubeMX

Definire un pin GPIO con questa configurazione:

Nome pin da assegnare output level rilevanza velocità mode pull-up/down
DISPL_LED low - Output push pull No pull-up/down

Connettere il pin LED del display a DISPL_LED
Tutto qui. La funzione "Displ_BackLight" mette a disposizione i comandi (parametro passato alla funzione):

parametro descrizione
'0' spegne il display
'1' accende il display
'F' accende il display (come comando '1')
'Q' nessuna azione

La funzione "Displ_BackLight" restituisce sempre lo stato del display (0=spento, 1 = acceso), il comando 'Q' è usato quindi per leggere lo stato del display.

Modalità "dimmer"

("se viene rimosso il commento a #define DISPLAY_DIMMER_MODE" nel file "z_displ_ILI9XXX.h")
la funzione "Displ_BackLight" gestisce la retroilluminazione controllata in PWM.

Configura su CubeMX

un pin PWM:

  • attivare un canale PWM di timer "general purpose" (es. CH1 su TIM3)
  • il canale deve essere configurato in "PWM mode 1" e "Counter mode UP"
    il registro ARR ("Auto Reload Register", o "Counter period" su CubeMX) definisce il numero di livelli di luminosità del display. Es: impostare a 10 per avere 10 livelli di luminosità disponibili (da 1 a 10, piu' il livello 0="display spento")
    Maggiore è il valore del registro PSC (prescaler) e minori sono i consumi ed EMI (vedi le GPIO software guidelines di STM), ma il valore non deve essere troppo elevato in modo che sia ((clock uC / PSC)/ ARR) > 100 Hz per evitare problemi di flickering
Nome pin da assegnare output level rilevanza velocità mode pull-up/down
DISPL_LED low - Alternate Function (Timer) No pull-up/down

configura z_displ_ILI9XXX.h

allineare i parametri:
#define BKLIT_TIMER indicare il timer usato (es. TIM3)
#define bklit_t indicare il timer usato (es. htim3)
#define BKLIT_CHANNEL indicare il canale usato (es. TIM_CHANNEL_2)
#define BKLIT_CCR definire il preload register coinvolto da PWM

definire i parametri:
#define BKLIT_STBY_LEVEL indicare il livello di standby (tra 0 ed ARR)
#define BKLIT_INIT_LEVEL indicare il livello di assegnare alla accensione (tra 0 ed ARR)

La funzione "Displ_BackLight" mette a disposizione i comandi (parametro passato alla funzione):

parametro descrizione
'0' spegne il display (livello 0)
'1' display al massimo (livello ARR)
'F' display al massimo (come comando '1')
'I' setup iniziale del display
'S' display al valore di standby
'W' display al valore precedente all'ultimo standby (risveglio da standby)
'+' aumenta la luminosità di 1 livello
'-' diminuisce la luminosità di 1 livello
'Q' nessuna azione

La funzione "Displ_BackLight" restituisce sempre lo stato del display (livello di luminosità), il comando 'Q' è usato quindi per interrogare sullo stato del display.

NOTA BENE: se in dimming mode, si deve eseguire Displ_Backlight('I') in fase di startup. Verrà avviato anche il clock del timer

Prossimi passi

Dovrebbe bastare, dovresti aver già fatto anche questo step:

ora puoi andare alle sezioni: