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 ---
- 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 ---
Modérateur : mazertoc
Ecran OLED rond GC9A01
Bonsoir paulfjujo, francois77, satinas, et tout le forum,
Et Voici un exemple simple
Pas le temps de m'occuper de tous ça actuellement, donc je serais très rarement sur le forum.
A+
francois77 a écrit :Source du message Pour l'instant j'essaie de trouver un exemple de SPI un 18f26k22
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.
Ecran OLED rond GC9A01
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Ecran OLED rond GC9A01
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
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
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
Bonsoir francois77, et tout le forum,
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 ( faut que je regarde la datasheet pour voir si j'ai pas dit de bêtise... )
La solution la voila en page 254 de la datasheet
0100 = SPI Slave mode, clock = SCKx pin, SSx pin control enabled
A+
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 ( faut que je regarde la datasheet pour voir si j'ai pas dit de bêtise... )
La solution la voila en page 254 de la datasheet
0100 = SPI Slave mode, clock = SCKx pin, SSx pin control enabled
A+
Ecran OLED rond GC9A01
Ecran OLED rond GC9A01
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Ecran OLED rond GC9A01
Re
Normalement sa devrait prendre moins de temps (sans X copyright) avec une horloge à 32 MHz, d'après mes calcul
Je pense que tu as compris ce que je voulais dire....
Normalement l'asm devrait être plus rapide que le C le défit est lancé....
A+
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, d'après mes calcul
paulfjujo a écrit :Source du messagefrancois77 a écrit :Source du message je regarde cela demain ........
Je pense que tu as compris ce que je voulais dire....
Normalement l'asm devrait être plus rapide que le C le défit est lancé....
A+
Ecran OLED rond GC9A01
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Bonjour
Qui va lentement va surement surtout en fonction des ces compétences
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+
Qui va lentement va surement surtout en fonction des ces compétences
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
Ecran OLED rond GC9A01
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
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
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
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
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 65 invités