Voici mon avancement sur l’écran que ma proposé Satinas et vous trouverez le lien ici https://www.banggood.com/fr/2_4-Inch-TFT-LCD-Shield-240320-Touch-Board-Display-Module-With-Touch-Pen-For-Arduino-UNO-p-1171082.html?rmmds=search
Datasheet du ILI9341 : ILI9341
Programme simple, juste l'initialisation puis affichage d'un petit rectangle
voir la présentation par notre ami Temps-x ecran TFT
la macro pour l'envoi des commandes et des données
Code : Tout sélectionner
Envoi_cmd
bcf LCD_RS
clrf LATD
bcf LCD_WR
nop
bsf LCD_WR
movwf LATD
bcf LCD_WR
nop
bsf LCD_WR
return
Envoi_data_8
bsf LCD_RS
movwf LATD
bcf LCD_WR
nop
bsf LCD_WR
clrf LATD
return
Envoi_data_16
bsf LCD_RS
clrf LATD
bcf LCD_WR
nop
bsf LCD_WR
movwf LATD
bcf LCD_WR
nop
bsf LCD_WR
clrf LATD
return
l'initialisation
Code : Tout sélectionner
;****************************************************************
; Debut initialisation
;*****************************************************************
Tempo_10ms .100
bcf LCD_CS
bsf LCD_WR
bsf LCD_RD
bsf LCD_RST
Tempo_10ms .20
bcf LCD_RST
Tempo_10ms .10
bsf LCD_RST
Tempo_10ms .20
movlw 0x01 ; reset
rcall Envoi_cmd
Tempo_10ms .10
movlw 0x3A ; colmod
rcall Envoi_cmd
movlw 0x55 ; 16 bits/pixel 65K couleurs rgb 565 '1010101'
rcall Envoi_data_16
movlw 0x11 ; sleep out
rcall Envoi_cmd
movlw 0x29 ; ecran on
rcall Envoi_cmd
;************************Fin de l'initialisation********
et le petit programme qui affiche une fenetre et fait une inversion d'affichage
Code : Tout sélectionner
movlw D'216'
movwf c1 ; quelques variables pour les boucles
movlw D'255'
movwf c2
movlw .20
movwf c3
movlw D'255'
movwf c01
;***************************************************** rectangle 1
movlw 0x2A ; set colonne adress
rcall Envoi_cmd
movlw 0x1F
rcall Envoi_data_16
movlw .100
rcall Envoi_data_16
movlw 0x1F
rcall Envoi_data_16
movlw .100
rcall Envoi_data_16
movlw 0x2B ; set page
rcall Envoi_cmd
movlw 0x1F
rcall Envoi_data_16
movlw .100
rcall Envoi_data_16
movlw 0x1F
rcall Envoi_data_16
movlw .100
rcall Envoi_data_16
movlw 0x2C ; memory write
rcall Envoi_cmd
boucle2
movlw 0xF0 ; 1 pixel rouge
rcall Envoi_data_8
movlw 0x00
rcall Envoi_data_8
movlw 0x00 ; 1 pixel rouge
rcall Envoi_data_8
movlw 0x08
rcall Envoi_data_8
decfsz c01,f
bra boucle2
decfsz c02,f
bra boucle2
Tempo_10ms .100
altern
movlw 0x21 ; display inversion on
rcall Envoi_cmd
movlw 0x00
Tempo_10ms .300
movlw 0x20 ; display inversion off
rcall Envoi_cmd
movlw 0x00
rcall Envoi_cmd
Tempo_10ms .300
bra altern
si essai d'eteindre l'ecran pour tester les commandes et qu'il n'y a rien d'afficher, l'ecran reste allumé et on a l'impression que la commande ne fonctionne pas.
si un dessin est affiché, alors nous voyons bien que la commande agis