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)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#41 Message par JMarc » ven. 6 oct. 2017 22:34

J'avais corrigé de moi même en fait j'avais essayé les 2 méthodes

Code : Tout sélectionner

debut_y
    bsf     LCD_WR          
; envoi normal
    bsf     LCD_RD
    bsf     LCD_RST
    Tempo_10ms .10
    bcf     LCD_RST
    Tempo_10ms .1
    bsf     LCD_RST
    Tempo_10ms .10
'

j'ai enlevé tout les RS inutiles

J'ai les deux programmes qui ce suivent, celui avec le reset puis les bits inversés , tempo d'une seconde, reset puis le programme normal

l’écran s'allume, s’assombrit, encore plus, scintille, puis je pense qu'il arrive sur la seconde parti car il s'allume de nouveau, puis quelques scintillement pour se figer éclairé

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

#42 Message par satinas » ven. 6 oct. 2017 22:47

Je préfèrerais que tu commences par le programme normal avant l'autre, parce que vos histoires de bits inversés, je le sens pas du tout :)

é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...

#43 Message par JMarc » ven. 6 oct. 2017 22:59

voila c'est fait, j'ai supprimé la parti inversé

L’écran s'allume et scintille légèrement mais reste éclairé.

J'ai rajouté quelques nop dans les sous programmes mais rien

é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...

#44 Message par JMarc » ven. 6 oct. 2017 23:07

Enlevé moi un doute, il y a 2 vcc, 1 en 5 volts et 1 en 3,3 volts

j'alimente en 5 volts sans alimenter le 3,3 volts. demain j'essai d'appliquer les 2 vcc

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

#45 Message par satinas » ven. 6 oct. 2017 23:26

Excellente remarque, sur l'Arduino les broches 5V et 3,3V sont des sorties alim.
J'ai regardé ma carte pic, j'envoie aussi les 2 tensions. Je ne l'ai pas rebranchée cette carte, car elle date, mais je pilotais sans problème le lcd, par contre le tactile ...
Il y a un régulateur 3,3V sur le lcd, mais sa sortie 3,3V n'est pas raccordée à la pin 3,3V

é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

#46 Message par Temps-x » sam. 7 oct. 2017 01:53

D'après moi, les 3,3 volts son pour le lecteur de carte SD, sans schéma c'est aller dans le vide, on travaille toujours avec un schéma électronique.
: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)
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#47 Message par satinas » sam. 7 oct. 2017 09:39

Bonjour, c'est le week-end, on y croit toujours.
Pourquoi voulez-vous un schéma d'un lcd utilisé partout sur le net. Il est prévu pour être connecté sur une Arduino Uno qui sort du 5V sur la broche 5V et du 3,3V sur la broche 3,3V (en faible puissance). Temp-x, modifie ton schéma de câblage de début du post.
Evitez de baisser la broche LCD_RD quand il y a un pic en output en face.
JMarc, peux tu mettre à jour ton post contenant le programme complet, merci
Un essai à faire, juste après l'init complète du lcd, au lieu d'afficher, alterner toutes les secondes les commandes display on et off (0x29, 0x28), pour voir comment il réagit.
Soyons patients et optimistes.
Modifié en dernier par satinas le sam. 7 oct. 2017 16:49, modifié 1 fois.

é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...

#48 Message par JMarc » sam. 7 oct. 2017 15:45

Bonjour Satinas et Temps-x

bon, je n'ai plus d'idées, je met le code dans l'etat car a force de bidouiller, il ne ressemble plus a rien

j'ai essayé avec vcc=5 volts, =3,3 volts et aussi les deux simultanés

il y a le timer qui fait clignoter une led temoin que le prog n'est pas planté
Deux leds temoin pour l'evolution du programme
en premiere partie, le programme normal et en seconde partie le prog avec les commandes inversées

Code : Tout sélectionner

;                descriptif du projet:
;********************************************************************
essai de programation pic 18f4525 d,un afficheur TFTLCD
;;********************************************************************
;                
Auteur    :    JMarc 
;                Version    :   1.0
;                Date    :      2017
;*******************************************************************************
;               
quartz 20 mhz                 
;*******************************************************************************

    
ERRORLEVEL-302
    
   
list       p=18f4525        ;liste directive 
   
#include    "p18f4525.inc"
    #include    "C:\jmp\pic\macros\macro.inc"
TYPEINT EQU 0                    0 pour interruptions classiques
                                
1 pour interruptions avec priorité

 CONFIG    OSC 
HS        Oscillateur principal (LP,XT,HS,RC,EC,ECIO,HSPLL,RCIO)
 
IFNDEF DEBUG
 CONFIG PWRT 
OFF        Délai au démarrage (ON/OFF)
 
CONFIG WDT OFF        Mise en service watchdog (ON/OFF)
 
CONFIG WDTPS 128        Postdiviseur du watchdog (1,2,4,8,16,32,64,128)
 
CONFIG LVP OFF        Programmation basse tension autorisée (ON/OFF)
 
CONFIG DEBUG OFF        Debugger hors service (laisser sur OFF)
 
CONFIG CP0 OFF        code protection sur block 0 (ON/OFF)
 
CONFIG CP1 OFF        code protection sur block 1 (ON/OFF)
 
CONFIG CP2 OFF        code protection sur block 2 (ON/OFF)
 
CONFIG CPB OFF        code protection sur bootblock  (ON/OFF)
 
CONFIG CPD OFF        Code protection sur eeprom (ON/OFF)
 
CONFIG WRT0 OFF        Protection écriture block 0 (ON/OFF)
 
CONFIG WRT1 OFF        Protection écriture block 1 (ON/OFF)
 
CONFIG WRT2 OFF        Protection écriture block 2 (ON/OFF)
 
CONFIG WRTB OFF        Protection écriture bootblock (ON/OFF)
 
CONFIG WRTC OFF        Protection écriture configurations (ON/OFF)
 
CONFIG WRTD OFF        Protection écriture zone eeprom (ON/OFF)
 
CONFIG EBTR0 OFF        protectlecture de table block 0 (ON/OFF)
 
CONFIG EBTR2 OFF        protectlecture de table block 2 (ON/OFF)
 
CONFIG EBTRB OFF        protectlecture de table bootblock (ON/OFF)
 ENDIF

PORT_DONNEES EQU LATD
#DEFINE LCD_RD  LATC,0  ; write mode
#DEFINE LCD_WR  LATC,1  ; enable
#DEFINE LCD_RS  LATC,2
#DEFINE LCD_CS  LATC,3  
#DEFINE LCD_RST LATC,4  ; reset


 
;=============================================================================
;                         
VARIABLES ACCESS RAM                               =
;=============================================================================

zone de 96 octets
; -----------------
 
CBLOCK    0x00                    zone access ram de la banque 0
    flags 
1                    flags divers
    Temp  
1
    adresse 
1
    donnees 
1
    c1 
1
    c2 
1
    c01 
1
    datas 
1
    temptmr0 
1
    TIMER1L 
1
    TIMER1H 
1
    msd1 
:1     pour la macro Tempo
    msd2 
1
    msd3 
1
    usd1 
1
    usd2 
1
    usd3 
1
  ENDC



    ORG    0x00
    nop                            
pour debugger
    
goto    init                sauter initialisation
;=============================================================================
;                          
INTERRUPTION SIMPLE                               =
;=============================================================================
    
ORG 0x08                    point de départ des interruptions simples

                        
sauvegardes supplémentaires
                        
; ---------------------------


   
btfss   PIR1,TMR1IF        test timer1 en cours
   
goto    inter1        non alors test suivant
   MOVLW   D
'45'        ;oui
   MOVWF   TMR1L        
45
   MOVLW   D
'207'         ;on recharge le timer1
   MOVWF   TMR1H        
207
       
    bcf   PIR1
,TMR1IF      ;RAZ du drapeau de TMR1
       
    incf    Temp
,F         à 10 cela fera 1s
    movlw   0x0A
    subwf   Temp
,w
    btfss   STATUS
,Z
    bra     inter1
    clrf    Temp
    movlw   
B'00000001'
    
xorwf   LATA,f

                        
;traitement de l'interruption
inter1                        ;-----------------------------
    btfss    INTCON,TMR0IF        ; tester si flag INT0IF positionné
    bra        inter2                ; non, test suivant
    incf    temptmr0            ; +1 toute les 100 ms

    bcf        INTCON,TMR0IF        ; effacer le flag (ou le faire dans traitinit0)
    bra        interrest            ; et terminer par restauration
    retfie    FAST                ; si pas de restauration, on peut sortir ici 
                                ; dans ce cas, effacer la ligne précédente    
inter2
            ; Interruption réception USART
            ; ----------------------------
    btfss    PIE1,RCIE    ; tester si interrupt autorisée
    bra     inter3        ; non sauter

    btfss    PIR1,RCIF    ; oui, tester si interrupt en cours
    bra     inter3        ; non sauter
;    rcall    intrc        ; oui, traiter interrupt

    bra     interrest

inter3  ; pour ajout futur, oui je sais, c'
est le fouilli lol

            
Interruption transmission USART
            
; -------------------------------

    
btfss    PIE1,TXIE    tester si interrupt autorisée
    bra     interrest    
non sauter

    btfss    PIR1
,TXIF    ouitester si interrupt en cours
    bra     interrest    
non sauter
;    rcall    inttx        ouitraiter interrupt

                        
restaurations
                        
; -------------
interrest

    retfie     FAST                
retour avec restauration de
                                
WREGBSRet STATUS

init
                    
traiter mise sous tension du pic
                    
; --------------------------------
initpor                        par exemple on efface la RAM banque 0
    lfsr    FSR0
,0x00        pointer sur l'adresse 0
initpor1
    clrf    POSTINC0        ; effacer emplacement pointé, et incrément pointeur
    btfss    FSR0H,0            ; banque 0 terminée?
    bra        initpor1        ; poursuivre traitement


    movlw     0x06                ; port A en mode numérique
    movwf    ADCON1                ; dans registre de contrôle


    clrf    PORTA               ; effacement des ports
    clrf    PORTB
    clrf    PORTC
    clrf    PORTD

    clrf    TRISA               ; ports en sortie
    clrf    TRISB              
    clrf    TRISC            
  ;  bsf     TRISC,6         ; RC6 et RC7 en entrée
 ;   bsf     TRISC,7
    clrf    TRISD
 
    bsf     PORTA,0
    bsf     INTCON,PEIE    ; autoriser interruptions périphériques
    movlw   (0)|(0)|(1<<T1CKPS1)|(1<<T1CKPS0)|(0<<T1OSCEN)|(0<<T1SYNC)|(0<<TMR1CS)|(0<<TMR1ON)
    movwf   T1CON
    movlw   D'
4'
    movwf   TMR1H
    movlw   D'
4'
    movwf   TMR1L
    bsf     T1CON,TMR1ON
    bsf     PIE1,TMR1IE
     bsf        INTCON,GIE            ; mettre toutes les interruptions en service.   

    clrf    Temp
    movlb   0x01    ; banque 1



;*****************************************************************
debut_y
    bsf     LCD_WR          ; envoi bits commande normal
    bsf     LCD_RD          ; high = write mode
    bsf     LCD_RST         ; high = no reset
    bsf     LCD_RS          ; pour cmd
    bcf     LCD_CS          ; low = select ecran
    Tempo_10ms .100         ; 1 seconde
    bcf     LCD_RST
    Tempo_10ms .100
    bsf     LCD_RST
    Tempo_10ms .100


    movlw   D'
216'
    movwf   c1      ; boucle pour write graphic in ram
    movlw   D'
4'
    movwf   c2

    movlw   D'
110'
    movwf   c01

    Tempo_10ms .10
    bcf     LCD_CS

    movlw   0x01        ; reset
    rcall   Envoi_cmdy

 ;   bsf     LCD_CS

    Tempo_10ms  .100

  ;  bcf     LCD_CS
 ;   movlw   0x00
 ;   rcall   Envoi_cmdy
 ;   bsf     LCD_RS

    movlw   0x3A        ; colmod
    rcall   Envoi_cmdy
    movlw   0x55        ; 16 bits/pixel   65K couleurs  rgb 565 '
1010101'
    rcall   Envoi_datay

    movlw   0x20        ; inverse vidéo off
    rcall   Envoi_cmdy

    movlw   0x11        ; sleep out
    rcall   Envoi_cmdy

 ;   bsf     LCD_CS

    Tempo_10ms .100
    
    bcf     LCD_CS

    movlw   0x13        ; normal display on
    rcall   Envoi_cmdy

    movlw   0x29        ; ecran on
    rcall   Envoi_cmdy

    movlw   0x36        ; Memory access control
    rcall   Envoi_cmdy
    movlw   0x88        ; set orientation    '
10001000'
    rcall   Envoi_datay

 ;   bsf     LCD_CS
    Tempo_10ms .100

 ;   bcf     LCD_CS
    
    movlw   0x2A        ; set colonne adress
    rcall   Envoi_cmdy
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
10'
    rcall   Envoi_datay
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
10'
    rcall   Envoi_datay      

    movlw   0x2B        ; set page
    rcall   Envoi_cmdy
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
20'
    rcall   Envoi_datay
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
20'
    rcall   Envoi_datay

    movlw   0x2C        ; write graphic in ram
    rcall   Envoi_cmdy

boucley2 
    movlw   0xF8        ; 1 pixel rouge
    rcall   Envoi_datay
    movlw   0x00
    rcall   Envoi_datay
 ;   decfsz  c01,f
 ;   bra     boucley2 

 ;   bsf     LCD_CS
    Tempo_10ms .100
 ;   bcf     LCD_CS

    movlw   0x2A        ; set colonne adress
    rcall   Envoi_cmdy
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
20'
    rcall   Envoi_datay
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
40'
    rcall   Envoi_datay


    movlw   0x2B        ; page adress
    rcall   Envoi_cmdy
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
30'
    rcall   Envoi_datay
    movlw   0x00
    rcall   Envoi_datay
    movlw   D'
70'
    rcall   Envoi_datay

    movlw   0x2C        ; write graphic in ram
    rcall   Envoi_cmdy

boucley

    movlw   0xF8        ; 1 pixel rouge
    rcall   Envoi_datay
    movlw   0x00
    rcall   Envoi_datay
    decfsz  c1,f
    bra     boucley 
    decfsz  c2,f
    bra     sauty
    bra     boucle_finy
sauty
    movlw   D'
215'
    movwf   c1
    bra     boucley
boucle_finy
 ;   bsf     LCD_CS

    Tempo_10ms .100
finy
    Tempo_10ms .100
    movlw   0x28        ; ecran off
    rcall   Envoi_cmdy
    Tempo_10ms .100
    movlw   0x29        ; ecran on
    rcall   Envoi_cmdy
    Tempo_10ms .100
  ;   bsf     LCD_WR
 ;   bsf     LCD_RD
  ;  bsf     LCD_RST

    Tempo_10ms .200
    bsf     LATA,2
;******************************************************************
;   partie bit commande inverse

    movlw   D'
216'
    movwf   c1      ; boucle pour write graphic in ram
    movlw   D'
4'
    movwf   c2

    movlw   D'
110'
    movwf   c01

debut
    bcf     LCD_WR
    bcf     LCD_RD
    bcf     LCD_RST
    bsf     LCD_CS      ; commande inversées

    bcf     LCD_RST
    Tempo_10ms .100
    bsf     LCD_RST
    Tempo_10ms .100
    bcf     LCD_RST
    Tempo_10ms .100

    Tempo_10ms .10

  ;  bsf     LCD_CS

    movlw   0x01        ; reset
    rcall   Envoi_cmd
 ;   bcf     LCD_CS
 ;   bcf     LCD_CS

    Tempo_10ms  .100
 ;   bsf     LCD_CS
  ;  movlw   0x00
  ;  movwf   datas
  ;  rcall   Envoi_cmd

    movlw   0x3A        ; colmod
    rcall   Envoi_cmd
    movlw   0x55        ; 16 bits/pixel   65K couleurs  rgb 565 '
1010101'
    rcall   Envoi_data

    movlw   0x20        ; inverse vidéo off
    rcall   Envoi_cmd

    movlw   0x11        ; sleep out
    rcall   Envoi_cmd
 
 ;   bcf     LCD_CS

    Tempo_10ms .100
    
 ;   bsf     LCD_CS

    movlw   0x13        ; normal display on
    rcall   Envoi_cmdy

    movlw   0x29        ; ecran on
    rcall   Envoi_cmd
    movlw   0x36        ; Memory access control
    rcall   Envoi_cmd
    movlw   0x88        ; set orientation    '
10001000'
    rcall   Envoi_data

;    bcf     LCD_CS
    Tempo_10ms .100

 ;   bsf     LCD_CS
  
    movlw   0x2A        ; set colonne adress
    rcall   Envoi_cmd
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
10'
    rcall   Envoi_data
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
10'
    rcall   Envoi_data      

    movlw   0x2B        ; set page
    rcall   Envoi_cmd
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
20'
    rcall   Envoi_data
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
20'
    rcall   Envoi_data

    movlw   0x2C        ; write graphic in ram
    rcall   Envoi_cmd
  
boucle2 
    movlw   0xF8        ; 1 pixel rouge
    rcall   Envoi_data
    movlw   0x0F
    rcall   Envoi_data
    decfsz  c01,f
    bra     boucle2

;    bcf     LCD_CS
    Tempo_10ms .100
 ;   bsf     LCD_CS

    movlw   0x2A        ; set colonne adress
    rcall   Envoi_cmd
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
20'
    rcall   Envoi_data
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
40'
    rcall   Envoi_data


    movlw   0x2B        ; page adress
    rcall   Envoi_cmd
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
30'
    rcall   Envoi_data
    movlw   0x00
    rcall   Envoi_data
    movlw   D'
70'
    rcall   Envoi_data

    movlw   0x2C        ; write graphic in ram
    rcall   Envoi_cmd

boucle
    movlw   0xF8        ; 1 pixel rouge
    rcall   Envoi_data
    movlw   0xF0
    rcall   Envoi_data
    decfsz  c1,f
    bra     boucle 
    decfsz  c2,f
    bra     saut
    bra     boucle_fin
saut
    movlw   D'
215'
    movwf   c1
    bra     boucle
boucle_fin
    bcf     LCD_CS

    Tempo_10ms .100

    bsf     LCD_CS
    movlw   0x00
    rcall   Envoi_cmd
 ;   bcf     LCD_CS

    Tempo_10ms .200

    movlw   0x28        ; ecran off
    rcall   Envoi_cmd
    Tempo_10ms .200
    movlw   0x29        ; ecran on
    rcall   Envoi_cmd
    Tempo_10ms .200

    bsf     LATA,1      ; led temoin
fin
    

   bra fin


Envoi_cmdy
  ;  clrf    LATD           vestige de multiples essais
    nop
    nop
    nop
 ;   bcf     LCD_RS
    nop
    nop
    nop
    nop
    nop
    nop
 ;   bcf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
 ;   bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    movwf   LATD
    nop
    nop
    bcf     LCD_RS
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    bcf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    bsf     LCD_RS
    nop
    nop
    nop
    nop
    nop
    nop
    return

Envoi_datay
 ;   clrf   LATD
    nop
 ;   bcf     LCD_WR
    nop
    nop
    nop
    nop
 ;   bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    movwf   LATD
    nop
    bcf     LCD_WR
    nop
    nop
    nop
    nop
    bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    return


Envoi_cmd
    clrf    LATD
    nop
 ;   bsf     LCD_RS
    nop
    nop
    nop
    nop
    nop
    nop
 ;   bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
 ;   bcf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    movwf   LATD
    nop
    nop
    bsf     LCD_RS
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    bcf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    bcf     LCD_RS
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    return

Envoi_data
 ;   clrf    LATD
    nop
    nop
    nop
    nop
    nop
    nop
 ;   bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
 ;   bcf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    movwf   LATD
    nop
    nop
    nop
    nop
    nop
    nop
    bsf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    bcf     LCD_WR
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    return


end





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

#49 Message par satinas » sam. 7 oct. 2017 16:46

Après des tests sur mon lcd, il apparait que la pin 3,3V, bien que présente, n'est pas câblée.Il fonctionne avec le 5V seul, affichage et sdcard. Le régulateur 3,3V intégré alimente donc la sdcard et la logique d'affichage.

Pour ta logique inversée, si tu laisses LCD_RD à l'été bas longtemps, tu connectes directement des pins programmées en output côté pic et côté lcd. Soit ça tient le choc, soit ça grille. LCR_RD servira à lire l'id, mais il vaut mieux le faire plus tard quand on maîtrisera un peu la communication. Le fait de lui envoyer des commandes et datas, c'est safe, tant qu'on baisse pas LCD_RD.

As-tu essayé d'alterner indéfiniment Display ON / Display OFF toutes les secondes, juste après l'init ?

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

#50 Message par satinas » sam. 7 oct. 2017 18:18

Regarde ce que cela donne avec ça :

Code : Tout sélectionner

    bsf     LCD_CS
    bsf     LCD_WR
    bsf     LCD_RD
    bsf     LCD_RST
    Tempo_10ms .20
    bcf     LCD_RST
    Tempo_10ms .1
    bsf     LCD_RST
    Tempo_10ms .20

    bcf     LCD_CS
    movlw   0x3A        ; colmod
    rcall   Envoi_cmdy
    movlw   0x55        ; 16 bits/pixel   65K couleurs  rgb 565 '1010101'
    rcall   Envoi_datay
    movlw   0x20        ; inverse vidéo off
    rcall   Envoi_cmdy
    movlw   0x11        ; sleep out
    rcall   Envoi_cmdy
    movlw   0x29        ; ecran on
    rcall   Envoi_cmdy
    movlw   0x36        ; Memory access control
    rcall   Envoi_cmdy
    movlw   0x88        ; set orientation    '10001000'
    rcall   Envoi_datay
    bsf     LCD_CS
    Tempo_10ms .20

altern
    bcf     LCD_CS
    movlw   0x28        ; ecran off
    rcall   Envoi_cmdy
    bsf     LCD_CS
    Tempo_10ms .100
    bcf     LCD_CS
    movlw   0x29        ; ecran on
    rcall   Envoi_cmdy
    bsf     LCD_CS
    Tempo_10ms .100
    bra     altern

Envoi_cmdy
    movwf   LATD
    bcf     LCD_RS
    nop
    bcf     LCD_WR
    nop
    bsf     LCD_WR
    bsf     LCD_RS
    return

Envoi_datay
    movwf   LATD
    nop
    bcf     LCD_WR
    nop
    bsf     LCD_WR
    return


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 45 invités