Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#161 Message par satinas » lun. 27 nov. 2017 08:42

Bonjour à tous

J'ai élagué l'init du ST7783, celui que j'ai reçu à la place du SPFD.
J'ai pas touché à l'init du SPFD5408, juste modifié l'envoi des commandes en format 16bits au lieu de 8 bits. Je vois pas l'intérêt, puisque les commandes sont sur un octet, mais c'est comme ça, faut suivre les datasheets de temps en temps :)

Et on dit merci à Arduino and co :)

Bonne journée

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#162 Message par Temps-x » lun. 27 nov. 2017 19:35

Bonjour satinas, JMarc, et tous le forum,

:eek: JMarc, et satinas l'on fait, c'est incroyable, mais vrai (ça me rappelle quelque chose)

humour!! le roi du TFT c'est qui ...

Merci ! à vous deux, et félicitation, sa me réjouit pour deux chose.

Maintenant Il y aura pas qu'arduino qui le fait seulement, car ça devenait vraiment pénible de voir cela.

Et en deux, ça va amener du monde sur Fantas-PIC.

écrit par JMarc

Temps-x va être content


Ben oui, et non, d'une par parce que je suis prie par le temps, et je sais même pas si je vais pouvoir le tester ce Week-end :cry:

Enfin j'aurais voulu y arrivé seule, ou d'une autre façon, avec vous.

Mais rien ne m'empêche de prendre la source ASM de JMarc et satinas, pour tester l'écran, histoire de voir si il fonctionne.

Sorti du boulot, je suis KO, j'ai du mal à écrire c'est quelque ligne, je me repose un peu, et je reviens dans la soirée.


humour!! Bon JMarc à deux écran qui fonctionne, donc je suppose qu'il va doubler la production de cuisson d’œuf dur .....


Et un plat d’œuf dur pour vous deux, pour vous remercier.

oeufs-cuits-durs.jpg


A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le mar. 28 nov. 2017 00:51, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#163 Message par Gérard » lun. 27 nov. 2017 20:58

Hello tous,

Je ne fais pas d'asm, je n'ai pas d'écran LCD mais j'aime les oeufs durs ... dehors!!
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#164 Message par JMarc » mar. 28 nov. 2017 01:51

Bonjour à tous

Je réitère mon invitation pour vous réunir tous autour de ces œufs :wink:

en bas de la France, la ou il devrait faire chaud :razz:

Merci encore Satinas pour m'avoir supporté

:bravo:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#165 Message par Temps-x » mar. 28 nov. 2017 19:32

Bonsoir Gérard, JMarc, Satinas, et tous le forum,

humour!! Gérard aime trop les œufs durs, il a tous mangé, désolé JMarc, et, Satinas :sad: dehors!!

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#166 Message par Gérard » mar. 28 nov. 2017 22:37

Je me marre bien en vous lisant.
En fait, on est totalement hors sujet ...
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#167 Message par JMarc » jeu. 30 nov. 2017 19:08

Bonjour a tous


Gérard a écrit :Je me marre bien en vous lisant.
En fait, on est totalement hors sujet ...


Cela fait du bien un peu d'humour mais pour revenir a nos œufs heu nos écran, je remet le code source de Satinas Merci ! entre les crochets qui vont bien pour ne pas me faire gronder par jérémY humour!!

je suis impressionné par la clarté du code, j’apprends beaucoup en le décortiquant :bravo:

Code : Tout sélectionner

;-------------------------------------------------------
;
 lcd uno ILI9341/SPFD5408/ST7783             20/10/2017
;-------------------------------------------------------

;
 #define ILI9341     ; décommenter 1 seule des 3 lignes
  #define SPFD5408
; #define ST7783

;-------------------------------------------------------

;
          list          p=18F4685
;#include  <p18f4685.inc>
            list    p=18F4525
#include <p18f4525.inc>

;          config    OSC   = IRCIO67   ; intosc 8MHz
         config    OSC   
= INTIO67   ; intosc 8MHz
          config    WDT   
= OFF
          config    MCLRE 
= ON
          config    LVP   
= OFF

#define   LCD_RD    LATA,0
#define   LCD_WR    LATA,1
#define   LCD_RS    LATA,2
#define   LCD_CS    LATA,3
#define   LCD_RST   LATA,4
#define   LED       LATA,5

mloop1      equ          0x10
mloop2      equ          0x11
mloop3      equ          0x12
ploop1      equ          0x13
wloop1      equ          0x14
wloop2    equ          0x15
wloop3    equ          0x16


;-------------------------------------------------------
;
 macros
;-------------------------------------------------------
movlf     macro     arg,val   ; pseudo-instruction
          movlw     val
          movwf     arg
          endm

wait_ms   macro     n         
; tempo en ms
          local     m33
          movlf     mloop3
,n
m33       call      wait_1ms
          decfsz    mloop3
,f
          goto      m33
          endm

c8        macro     cmd       
; send lcd commande 8 bits
          movlw     cmd
          call      send_cmd
          endm

c16       macro     cmd       
; send lcd commande 8 bits en 16 bits
          c8        0x00
          c8        cmd
          endm

d8        macro     val       
; send lcd data 8 bits
          movlw     val
          call      send_data
          endm

d16       macro     val       
; send lcd data 16 bits
          d8        
(val)/0x100
          d8        
(val)%0x100
          endm

c8_d8     macro     cmd
,val   ; send lcd commande 8 bits et data 8 bits
          c8        cmd
          d8        val
          endm

c8_d16    macro     cmd
,val   ; send lcd commande 8 bits et data 16 bits
          c8        cmd
          d16       val
          endm

c8_2d16   macro     cmd
,v1,v2 ; send lcd commande 8 bits et 2 datas 16 bits
          c8        cmd
          d16       v1
          d16       v2
          endm

c16_d16   macro     cmd
,val   ; send lcd commande 16 bits et data 16 bits
          c16       cmd
          d16       val
          endm

;-------------------------------------------------------
#ifdef    ILI9341                     ; macros ILI9341
;-------------------------------------------------------
point     macro     x,y,clr           ; afficher point
          c8_2d16   0x2a
,x,x
          c8_2d16   0x2b
,y,y
          c8        0x2c
          d16       clr
          endm

rect      macro     x1
,y1,x2,y2,clr   ; afficher rectangle
          local     m31
,m32
          c8_2d16   0x2a
,x1,x2
          c8_2d16   0x2b
,y1,y2
          c8        0x2c
          movlf     mloop1
,(x2)-(x1)+1
m31       movlf     mloop2
,(y2)-(y1)+1
m32       d16       clr
          decfsz    mloop2
,f
          goto      m32
          decfsz    mloop1
,f
          goto      m31
          endm
#endif

;-------------------------------------------------------
#ifdef    SPFD5408                    ; macros SPFD5408
;-------------------------------------------------------
point     macro     x,y,clr           ; afficher point
          c16_d16   0x20
,x
          c16_d16   0x21
,y
          c16       0x22
          d16       clr
          endm

rect      macro     x1
,y1,x2,y2,clr   ; afficher rectangle
          local     m31
,m32
          c16_d16   0x20
,x1
          c16_d16   0x21
,y1
          c16_d16   0x50
,x1
          c16_d16   0x51
,x2
          c16_d16   0x52
,y1
          c16_d16   0x53
,y2
          c16       0x22
          movlf     mloop1
,(x2)-(x1)+1
m31       movlf     mloop2
,(y2)-(y1)+1
m32       d16       clr
          decfsz    mloop2
,f
          goto      m32
          decfsz    mloop1
,f
          goto      m31
          endm
#endif

;------------------------------------------------fan-------
#ifdef    ST7783                      ; macros ST7783
;-------------------------------------------------------
point     macro     x,y,clr           ; afficher point
          c16_d16   0x20
,x
          c16_d16   0x21
,y
          c16       0x22
          d16       clr
          endm

rect      macro     x1
,y1,x2,y2,clr   ; afficher rectangle
          local     m31
,m32
          c16_d16   0x20
,x1
          c16_d16   0x21
,y1
          c16_d16   0x50
,x1
          c16_d16   0x51
,x2
          c16_d16   0x52
,y1
          c16_d16   0x53
,y2
          c16       0x22
          movlf     mloop1
,(x2)-(x1)+1
m31       movlf     mloop2
,(y2)-(y1)+1
m32       d16       clr
          decfsz    mloop2
,f
          goto      m32
          decfsz    mloop1
,f
          goto      m31
          endm
#endif

;-------------------------------------------------------
;
 code
;-------------------------------------------------------
                org        0

          movlf   OSCCON
,0x73   ; 8MHz, Tcy=500ns
          movlf   ADCON1
,0x0f
          clrf    TRISA
          clrf    TRISD
          clrf    LATA

          bsf     LCD_CS        
; set commandes lcd
          bsf     LCD_WR
          bsf     LCD_RD
          bsf     LCD_RST

          movlf   ploop1
,6      ; led clignote 3 fois
p10       wait_ms d
'200'
          btg     LED
          decfsz  ploop1
,f
          goto    p10

          wait_ms d
'100'
          bcf     LCD_RST       ; reset lcd
          wait_ms 2
          bsf     LCD_RST
          wait_ms d
'100'

          #ifdef  ILI9341       ; init lcd
          call    init_9341
          
#endif
          #ifdef  SPFD5408
          call    init_5408
          
#endif
          #ifdef  ST7783
          call    init_7783
          
#endif

          bcf     LCD_CS
          rect    0
,      0,      d'239', d'239', 0xffff  ; rectangle blanc rrrrrggggggbbbbb
          rect    d
'10',  d'10',  d'50',  d'50',  0xf800  ; rectangle rouge 1111100000000000
          point   d
'55',  d'55',                  0x0000  ; point noir      0000000000000000
          rect    d
'60',  d'60',  d'130', d'130', 0x07e0  ; rectangle vert  0000011111100000
          point   d
'135', d'135',                 0x0000  ; point noir      0000000000000000
          rect    d
'140', d'140', d'230', d'230', 0x001f  ; rectangle bleu  0000000000011111
          rect    d
'0', d'231', d'240', d'320', 0xff00  ; 
          bsf     LCD_CS

forever   bra     forever

;-------------------------------------------------------
;
 sous-programmes
;-------------------------------------------------------
send_cmd  movwf   LATD
          bcf     LCD_RS
          bcf     LCD_WR
          bsf     LCD_WR
          bsf     LCD_RS
          return

send_data movwf   LATD
          bcf     LCD_WR
          bsf     LCD_WR
          return

wait_1s   movlf   wloop1
,d'10'
w91       wait_ms d'100'
          decfsz  wloop1,f
          goto    w91
          return

wait_1ms  movlf   wloop2
,3      ; 2001*500ns -> 1ms
          movlf   wloop3
,d'148'
          goto    w93
w92       clrf    wloop3
w93       decfsz  wloop3
,f
          goto    w93
          decfsz  wloop2
,f
          goto    w92
          return

#ifdef    ILI9341
;-------------------------------------------------------
;
 init ILI9341
;-------------------------------------------------------
init_9341 bcf     LCD_CS
          c8_d8   0x3A
,0x55     ; set clr 16 bits/pixel rgb565, 65k clr
          c8_d8   0x36
,0x88     ; set orientation
          c8      0x29          
; display on
          c8      0x11          
; sleep off
          bsf     LCD_CS
          wait_ms d
'120'
          return
#endif

#ifdef    SPFD5408
;-------------------------------------------------------
;
 init SPFD5408
;-------------------------------------------------------
init_5408 bcf     LCD_CS
 
;         c16_d16 0xb0, 0x0000
 
;         c16_d16 0xe5, 0x8000
 
;         c16_d16 0x00, 0x0001
          c16_d16 0x01
, 0x0100  ; changement de sens
          c16_d16 0x02
, 0x0700
          c16_d16 0x03
, 0x1030
  
;        c16_d16 0x04, 0x0000
          c16_d16 0x08
, 0x0202
          c16_d16 0x09
, 0x0000
 
;         c16_d16 0x0A, 0x0000
          c16_d16 0x0C
, 0x0000
          c16_d16 0x0D
, 0x0000
          c16_d16 0x0F
, 0x0000

          c16_d16 0x10
, 0x0000  ; Power On sequence
          c16_d16 0x11
, 0x0007
          c16_d16 0x12
, 0x0000
          c16_d16 0x13
, 0x0000
          wait_ms d
'50'
          c16_d16 0x10, 0x17B0  ; SAP=1, BT=7, APE=1, AP=3
          c16_d16 0x11
, 0x0007  ; DC1=0, DC0=0, VC=7
          wait_ms d
'10'
          c16_d16 0x12, 0x013A  ; VCMR=1, PON=3, VRH=10
          wait_ms d
'10'
          c16_d16 0x13, 0x1A00  ; VDV=26
          c16_d16 0x29
, 0x000c  ; VCM=12
          wait_ms d
'10'

          c16_d16 0x30, 0x0000  ; Gamma control
          c16_d16 0x31
, 0x0505
          c16_d16 0x32
, 0x0004
          c16_d16 0x35
, 0x0006
          c16_d16 0x36
, 0x0707
          c16_d16 0x37
, 0x0105
          c16_d16 0x38
, 0x0002
          c16_d16 0x39
, 0x0707
          c16_d16 0x3C
, 0x0704
          c16_d16 0x3D
, 0x0807

          c16_d16 0x60
, 0xA700  ; Set RAM area, GS=1
          c16_d16 0x61
, 0x0001
          c16_d16 0x6A
, 0x0000
          c16_d16 0x21
, 0x0000
          c16_d16 0x20
, 0x0000

          c16_d16 0x80
, 0x0000  ; Partial Display Control
          c16_d16 0x81
, 0x0000
          c16_d16 0x82
, 0x0000
          c16_d16 0x83
, 0x0000
          c16_d16 0x84
, 0x0000
          c16_d16 0x85
, 0x0000

          c16_d16 0x90
, 0x0010  ; Panel Control
          c16_d16 0x92
, 0x0000
          c16_d16 0x93
, 0x0003
          c16_d16 0x95
, 0x0110
          c16_d16 0x97
, 0x0000
          c16_d16 0x98
, 0x0000

          c16_d16 0x07
, 0x0173  ; Display on
          bsf     LCD_CS
          wait_ms d
'100'
          return
#endif

#ifdef    ST7783
;-------------------------------------------------------
;
 init ST7783
;-------------------------------------------------------
init_7783 bcf     LCD_CS
;         c16_d16 0xb0, 0x0000
;         c16_d16 0xff, 0x0001
;         c16_d16 0xf3, 0x0008
;         c16_d16 0x00, 0x0001
;         c16_d16 0x01, 0x0100
;         c16_d16 0x02, 0x0700
;         c16_d16 0x03, 0x1030
;         c16_d16 0x08, 0x0302
;         c16_d16 0x09, 0x0000
;         c16_d16 0x10, 0x0000
;         c16_d16 0x11, 0x0007
;         c16_d16 0x12, 0x0000
;         c16_d16 0x13, 0x0000
;         wait_ms d'50'
;         c16_d16 0x10, 0x14b0
;         wait_ms d'10'
;         c16_d16 0x11, 0x0007
;         wait_ms d'10'
;         c16_d16 0x12, 0x008e
;         c16_d16 0x13, 0x0c00
;         c16_d16 0x29, 0x0015
;         wait_ms d'10'
;         c16_d16 0x30, 0x0000
;         c16_d16 0x31, 0x0107
;         c16_d16 0x32, 0x0000
;         c16_d16 0x35, 0x0203
;         c16_d16 0x36, 0x0402
;         c16_d16 0x37, 0x0000
;         c16_d16 0x38, 0x0207
;         c16_d16 0x39, 0x0000
;         c16_d16 0x3c, 0x0203
;         c16_d16 0x3d, 0x0403
;         c16_d16 0x60, 0xa700
;         c16_d16 0x61, 0x0001
;         c16_d16 0x90, 0x0029
;         c16_d16 0x07, 0x0133

          c16_d16 0x10
, 0x14b0
          wait_ms d
'10'
          c16_d16 0x07, 0x0133
          c16_d16 0x61
, 0x0001
          wait_ms d
'120'
          c16_d16 0x03, 0x1030
          c16_d16 0x60
, 0x2700
          c16_d16 0x01
, 0x0000

          bsf     LCD_CS
          wait_ms d
'100'
          return
#endif

;-------------------------------------------------------
          end
;-------------------------------------------------------

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#168 Message par JMarc » ven. 8 déc. 2017 06:14

Bonjour tous le monde

Temps-x, alors ça fonctionne chez toi ? :sifflotte:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#169 Message par Temps-x » sam. 9 déc. 2017 01:12

Bonjour tout le forum,

JMarc à écrit :

Temps-x, alors ça fonctionne chez toi ? :sifflotte:


:sifflotte: euh... je vais me faire gronder..., je n'ai pas encore essayé, mais je le fais demain, je vous donne les résultats fin de soirée,
je suis actuellement dans les températures(pas pour faire cuire des œufs), mais pour finir le projet Ici j'ai été obligé de faire une base
de donnée en assembleur, pour contourner la difficulté électronique, donc revoir tout le programme.

Je ne voudrais pas que Satinas pense que j'ai laissé tomber, je n’abandonne jamais, la réussite va avec la volonté et la ténacité.
Mais j'aimerai finir tout ce que j'ai entrepris sur le forum.

A demain JMarc 8-) (je reviendrai)

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#170 Message par Temps-x » sam. 9 déc. 2017 18:04

Bonjour JMarc,et tout le forum,


ça marche, enfin quelque chose qui marche !!!



L'écran est bien un SPFD5408

écran 2.4 qui fonctionne.jpg


Schéma de câblage

écran 2.4 - Pic18F4525.jpg

Voici le code de JMarc avec la participation de Satinas que j'ai utilisé, en supprimant les parties inutiles.

Code : Tout sélectionner


     Errorlevel
-302                        ; Supprime le message "Ensure that bank bits are correct" 

     list    p
=18F4525
     
#include <p18f4525.inc>

     config    OSC   = INTIO67              ; intosc 8MHz
     config    WDT   
= OFF
     config    MCLRE 
= ON
     config    LVP   
= OFF

#DEFINE   LCD_RD    LATA,0
#DEFINE   LCD_WR    LATA,1
#DEFINE   LCD_RS    LATA,2
#DEFINE   LCD_CS    LATA,3
#DEFINE   LCD_RST   LATA,4
#DEFINE   LED       LATA,5

mloop1      equ          0x10
mloop2      equ          0x11
mloop3      equ          0x12
ploop1      equ          0x13
wloop1      equ          0x14
wloop2      equ          0x15
wloop3      equ          0x16

;-------------------------------------------------------
;
 macros
;-------------------------------------------------------

movlf     macro     arg,val   ; pseudo-instruction
          movlw     val
          movwf     arg
          endm

wait_ms   macro     n         
; tempo en ms
          local     m33
          movlf     mloop3
,n
m33       call      wait_1ms
          decfsz    mloop3
,f
          goto      m33
          endm

c8        macro     cmd       
; send lcd commande 8 bits
          movlw     cmd
          call      send_cmd
          endm

c16       macro     cmd       
; send lcd commande 8 bits en 16 bits
          c8        0x00
          c8        cmd
          endm

d8        macro     val       
; send lcd data 8 bits
          movlw     val
          call      send_data
          endm

d16       macro     val       
; send lcd data 16 bits
          d8        
(val)/0x100
          d8        
(val)%0x100
          endm

c8_d8     macro     cmd
,val   ; send lcd commande 8 bits et data 8 bits
          c8        cmd
          d8        val
          endm

c8_d16    macro     cmd
,val   ; send lcd commande 8 bits et data 16 bits
          c8        cmd
          d16       val
          endm

c8_2d16   macro     cmd
,v1,v2 ; send lcd commande 8 bits et 2 datas 16 bits
          c8        cmd
          d16       v1
          d16       v2
          endm

c16_d16   macro     cmd
,val   ; send lcd commande 16 bits et data 16 bits
          c16       cmd
          d16       val
          endm

point     macro     x
,y,clr           ; afficher point
          c16_d16   0x20
,x
          c16_d16   0x21
,y
          c16       0x22
          d16       clr
          endm

rect      macro     x1
,y1,x2,y2,clr   ; afficher rectangle
          local     m31
,m32
          c16_d16   0x20
,x1
          c16_d16   0x21
,y1
          c16_d16   0x50
,x1
          c16_d16   0x51
,x2
          c16_d16   0x52
,y1
          c16_d16   0x53
,y2
          c16       0x22
          movlf     mloop1
,(x2)-(x1)+1
m31       movlf     mloop2
,(y2)-(y1)+1
m32       d16       clr
          decfsz    mloop2
,f
          goto      m32
          decfsz    mloop1
,f
          goto      m31
          endm

;-------------------------------------------------------
;
 code
;-------------------------------------------------------
    org H'0'

          movlf   OSCCON,0x73   ; 8MHz, Tcy=500ns
          movlf   ADCON1
,0x0f
          clrf    TRISA
          clrf    TRISD
          clrf    LATA

          bsf     LCD_CS        
; set commandes lcd
          bsf     LCD_WR
          bsf     LCD_RD
          bsf     LCD_RST

          movlf   ploop1
,6      ; led clignote 3 fois
p10       wait_ms d
'200'
          btg     LED
          decfsz  ploop1
,f
          goto    p10

          wait_ms d
'100'
          bcf     LCD_RST       ; reset lcd
          wait_ms 2
          bsf     LCD_RST
          wait_ms d
'100'

          call    init_5408

          bcf     LCD_CS
          rect    0
,      0,      d'239', d'239', 0xffff  ; rectangle blanc rrrrrggggggbbbbb
          rect    d
'10',  d'10',  d'50',  d'50',  0xf800  ; rectangle rouge 1111100000000000
          point   d
'55',  d'55',                  0x0000  ; point noir      0000000000000000
          rect    d
'60',  d'60',  d'130', d'130', 0x07e0  ; rectangle vert  0000011111100000
          point   d
'135', d'135',                 0x0000  ; point noir      0000000000000000
          rect    d
'140', d'140', d'230', d'230', 0x001f  ; rectangle bleu  0000000000011111
          rect    d
'0', d'231', d'240', d'320', 0xff00  ; 
          bsf     LCD_CS

forever   bra     forever

;-------------------------------------------------------
;
 sous-programmes
;-------------------------------------------------------
send_cmd  movwf   LATD
          bcf     LCD_RS
          bcf     LCD_WR
          bsf     LCD_WR
          bsf     LCD_RS
          return

send_data movwf   LATD
          bcf     LCD_WR
          bsf     LCD_WR
          return

wait_1s   movlf   wloop1
,d'10'
w91       wait_ms d'100'
          decfsz  wloop1,f
          goto    w91
          return

wait_1ms  movlf   wloop2
,3      ; 2001*500ns -> 1ms
          movlf   wloop3
,d'148'
          goto    w93
w92       clrf    wloop3
w93       decfsz  wloop3
,f
          goto    w93
          decfsz  wloop2
,f
          goto    w92
          return

;-------------------------------------------------------
;
 init SPFD5408
;-------------------------------------------------------
init_5408 bcf     LCD_CS
 
;         c16_d16 0xb0, 0x0000
 
;         c16_d16 0xe5, 0x8000
 
;         c16_d16 0x00, 0x0001
          c16_d16 0x01
, 0x0100  ; changement de sens
          c16_d16 0x02
, 0x0700
          c16_d16 0x03
, 0x1030
  
;        c16_d16 0x04, 0x0000
          c16_d16 0x08
, 0x0202
          c16_d16 0x09
, 0x0000
 
;         c16_d16 0x0A, 0x0000
          c16_d16 0x0C
, 0x0000
          c16_d16 0x0D
, 0x0000
          c16_d16 0x0F
, 0x0000

          c16_d16 0x10
, 0x0000  ; Power On sequence
          c16_d16 0x11
, 0x0007
          c16_d16 0x12
, 0x0000
          c16_d16 0x13
, 0x0000
          wait_ms d
'50'
          c16_d16 0x10, 0x17B0  ; SAP=1, BT=7, APE=1, AP=3
          c16_d16 0x11
, 0x0007  ; DC1=0, DC0=0, VC=7
          wait_ms d
'10'
          c16_d16 0x12, 0x013A  ; VCMR=1, PON=3, VRH=10
          wait_ms d
'10'
          c16_d16 0x13, 0x1A00  ; VDV=26
          c16_d16 0x29
, 0x000c  ; VCM=12
          wait_ms d
'10'

          c16_d16 0x30, 0x0000  ; Gamma control
          c16_d16 0x31
, 0x0505
          c16_d16 0x32
, 0x0004
          c16_d16 0x35
, 0x0006
          c16_d16 0x36
, 0x0707
          c16_d16 0x37
, 0x0105
          c16_d16 0x38
, 0x0002
          c16_d16 0x39
, 0x0707
          c16_d16 0x3C
, 0x0704
          c16_d16 0x3D
, 0x0807

          c16_d16 0x60
, 0xA700  ; Set RAM area, GS=1
          c16_d16 0x61
, 0x0001
          c16_d16 0x6A
, 0x0000
          c16_d16 0x21
, 0x0000
          c16_d16 0x20
, 0x0000

          c16_d16 0x80
, 0x0000  ; Partial Display Control
          c16_d16 0x81
, 0x0000
          c16_d16 0x82
, 0x0000
          c16_d16 0x83
, 0x0000
          c16_d16 0x84
, 0x0000
          c16_d16 0x85
, 0x0000

          c16_d16 0x90
, 0x0010  ; Panel Control
          c16_d16 0x92
, 0x0000
          c16_d16 0x93
, 0x0003
          c16_d16 0x95
, 0x0110
          c16_d16 0x97
, 0x0000
          c16_d16 0x98
, 0x0000

          c16_d16 0x07
, 0x0173  ; Display on
          bsf     LCD_CS
          wait_ms d
'100'
          return

          end




Je sais que l'écran est bon, et je vais pouvoir avancer par la suite sur sa programmation, mais j'aimerai finir tout
ce que j'ai entrepris sur le forum.

:bravo: et Merci ! JMarc, et satinas

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le dim. 10 déc. 2017 00:56, modifié 7 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : F6FCO et 43 invités