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

Ecran OLED rond GC9A01
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#81 Message par Temps-x » jeu. 23 mars 2023 01:52

Bonsoir paulfjujo, francois77, satinas, et tout le forum,

francois77 a écrit :Source du message Pour l'instant j'essaie de trouver un exemple de SPI un 18f26k22 :langue:


Et Voici un exemple simple

Code : Tout sélectionner

;
;*******************************
 RC3 = l'horloge, RC4 = donnée ********************************* 
;
;***********************************************************************************************

      movlw B'
00010000'                   ; RC0(11), RC1(12), RC2(13), RC3(14), RC4(15), RC5(16), RC6(17), RC7(18)     
      movwf TRISC                         ; 

;************************ configuration du registre SSP1CON1 & SSP1STAT ************************ 

      movlw B'
01000000'                   ; B7 = 0 : lecture des données au milieu
      movwf SSP1STAT                      ; B'
01000000'
             
      movlw B'
00100001'                   ; B0 ...B3 = spi en mode Maître, clock = FOSC/16, B5 = polarité négative
      movwf SSP1CON1                      ; 16 /16(quartz) = 1Mbps B'
00100001'

;************************************ départ du programme **************************************

      clrf PORTA
      clrf PORTB
      clrf PORTC
   
      clrf LATA
      clrf LATB 
      clrf LATC

;***********************************************************************************************

      movlw D'
65'                         ; mettre la donnée dans W 
      rcall spi                           ; sous programme pour envoyer la donnée    

;*********************************************************************************************** 
terminer
      bra terminer

;**************************************** "SPI normal" *****************************************
spi     
      bcf cs                              ; activer l'
écran

      movwf SSP1BUF                       
; transférer la donnée à envoyer dans le registre SSP1BUF

attends                                   
; 
      btfss SSP1STAT
,BF                   ; transfére en cours ......
      bra attends                         ; attendre la fin
                                          
; transfére terminer
      bsf cs                              
; desactiver l'écran

      movf SSP1BUF,W                      ; normalement pas besoin, mais c'
est mieux de le faire    
                                          
; 
      return



Pas le temps de m'occuper de tous ça actuellement, donc je serais très rarement sur le forum.

==> A+
Modifié en dernier par Temps-x le ven. 24 mars 2023 01:32, modifié 3 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Ecran OLED rond GC9A01
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#82 Message par francois77 » jeu. 23 mars 2023 07:40

Bonjour Temps-x

Un grand Merci ! pour toutes les informations que tu m’as données. Un grand Merci ! aussi pour ta façon de transmettre tes connaissances et en les expliquant de manière simple et adapté à un débutant.
A+
Francois

Ecran OLED rond GC9A01
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#83 Message par francois77 » jeu. 23 mars 2023 17:55

Bonsoir,

Avec l'aide de Temps-x, cela m'as pris un petite heure ce matin pour tester cette méthode SPI

Les résultats du soir

teste sur proteus/ Ecran GC9A01 et écran ILI

movlw B'01000000' ; B7 = 0 : lecture des données au milieu
movwf SSP1STAT ;

movlw B'00100001' ; B0 ...B3 = spi en mode Maître, clock = FOSC/16, B5 = polarité négative
movwf SSP1CON1 ; SPI Master mode, clock = FOSC/16 = 4MHZ
-------> Ecran complet 360ms ok
Globalement 2 fois plus rapide que le SPI BANG, mais brochage imposé


movlw B'00100010' ; B0 ...B3 = spi en mode Maître, clock = FOSC/16, B5 = polarité négative
movwf SSP1CON1 ;SPI Master mode, clock = FOSC/64 = 1MHZ
------> Ecran complet 1.0946s

movlw B'00100000' ; B0 ...B3 = spi en mode Maître, clock = FOSC/16, B5 = polarité négative
movwf SSP1CON1
-------> Ecran complet 165ms SPI Master mode, clock = FOSC/4 = 16MHZ
OK en simulation sur protéus
NOK en Réel sur le 2 type d'ecran

Point intéressant, vous pouvez tester votre config GC9A01 sur Proteus avec un écran ILI

Reste a comprendre pourquoi Paul arrive a faire tourner son écran a grande vitesse ....

A+
Francois

Ecran OLED rond GC9A01
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#84 Message par Temps-x » jeu. 23 mars 2023 19:23

Bonsoir francois77, et tout le forum,

francois77 a écrit :Source du message Reste a comprendre pourquoi Paul arrive a faire tourner son écran a grande vitesse ....

Pour arrivé au même résultat que paulfjujo, il faut configurer les registres SSP1CON1 et SSP1STAT

Bon c'est vrai il utilise pas le même Pic, mais ça change rien à la vitesse qui devrait être de 10 Mhz sur ton Pic ( :sifflotte: faut que je regarde la datasheet pour voir si j'ai pas dit de bêtise... :-D )

La solution la voila en page 254 de la datasheet

0100 = SPI Slave mode, clock = SCKx pin, SSx pin control enabled

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

Ecran OLED rond GC9A01
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#85 Message par paulfjujo » jeu. 23 mars 2023 19:39

le 18F27K42 est à 32MHz au niveau de l'horloge SPI !
mais la vitesse SPI ne fait pas tout, loin de là..

mes derniers resultats :
effacement ecran en 98mS
Chargement image BMP 240x240 65Kcouleurs stockée en FLASH ROM => 204mS
Aide toi, le ciel ou FantasPic t'aidera

Ecran OLED rond GC9A01
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#86 Message par francois77 » jeu. 23 mars 2023 19:57

Bonsoir,

Merci ! Temps-x ma idea !

je regarde cela demain ........

Ecran OLED rond GC9A01
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#87 Message par Temps-x » ven. 24 mars 2023 01:46

Re

paulfjujo a écrit :Source du message le 18F27K42 est à 32MHz au niveau de l'horloge SPI !
mais la vitesse SPI ne fait pas tout, loin de là..

mes derniers resultats :
effacement ecran en 98mS


Normalement sa devrait prendre moins de temps (sans X copyright) avec une horloge à 32 MHz, :roll: d'après mes calcul
paulfjujo a écrit :Source du message

francois77 a écrit :Source du message je regarde cela demain ........

Je pense que tu as compris ce que je voulais dire.... :wink:

Normalement l'asm devrait être plus rapide que le C :langue: le défit est lancé.... :-D

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

Ecran OLED rond GC9A01
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#88 Message par francois77 » ven. 24 mars 2023 10:45

Bonjour

Qui va lentement va surement oops surtout en fonction des ces compétences oops

movlw B'01000000' B7 = 0 : lecture des données au milieu
movwf SSP1STAT

movlw B'00100000' B0 ...B3 = spi en mode Maître, clock = FOSC/16, B5 = polarité négative
movwf SSP1CON1 clock = FOSC/4 16MHZ

movlw B'00000000' Modification du registre SLRCOM
movwf SLRCON


-------> Ecran complet noir 165ms en réel

Reste a comprendre le message de Temps-X .....

Je ne suis pas contre un appui des adeptes du C

A+

Ecran OLED rond GC9A01
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#89 Message par satinas » ven. 24 mars 2023 11:08

Bonjour François,
Peux-tu donner le contenu complet de ton programme source asm actuel.
Précise ta question aussi, ça marche pas ? ça doit aller plus vite ?

Ecran OLED rond GC9A01
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#90 Message par francois77 » ven. 24 mars 2023 11:50

Hello Satinas

le programme fonctionne c'est écrit dans mon dernier message

-------> Ecran complet noir 165ms en réel

J'essaie de comprendre le fonctionnement du module SSP1M et ces possibilités

Capture.PNG


Pas sur d'avoir encore tout compris

Actuellement j'utilise TOSC et les pré diviseurs 64/16 et 4 , cela fonctionne plutôt bien

Maintenant je voudrais voir comment augmenter la vitesse du SPI si c'est possible

A+
Francois
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.


Retourner vers « Langage ASM »

Qui est en ligne

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