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 : 2595
Enregistré en : juillet 2016
Localisation : Terre

#61 Message par Temps-x » jeu. 9 mars 2023 01:43

Bonsoir paulfjujo, francois77, et tout le forum,

paulfjujo a écrit :Source du message C'est à croire qu'à chaud , il avait de bon parametres stockés quelque part


Ça me fait ça aussi, sur certain écran.... :roll: c'est magique

==> 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

#62 Message par francois77 » jeu. 9 mars 2023 07:04

Bonjour Paul,

Lors de la phase initialisation tu utilises ma séquence mini ou tu utilises la séquence d’init complète ?

Ayant eu des soucis il y a quelques années avec des écrans 2 et 4 lignes, j’avais résolu mon problème en jouant sur les tempos de la phase d’initialisation. Cela m’avait solutionné ce type de problème

Lors de tes essais tu passes par un écran plein de pixel aléatoire ou pas ?

Courage l’Ami, on ne va pas ce faire embêter par un petit écran !!

A+
Francois

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

#63 Message par paulfjujo » jeu. 9 mars 2023 09:22

bonjour à tous,

J'ai strictement utilisé l'init de Francois ( ou la tienne ?) puisque la version ASM tourne OK avec un 18F26K22 ( en ASM)
Par contre je suis en SPI Hardware et de plus sur le 18F27K42 ...
et sous MikroC (... avant de repasser en XC8 )

dommage que mon analyser logique SQA 50MHz ne puisse pas suivre l'init avec ESP32 .. qui tourne OK
visu signal clock SPI à 10MHz !, mais pas de decodage data affiché ( tout à 0) ..

futur choix analyser , prevoir plutot à 200MHz !

:sifflotte: la suite ... coté C
Aide toi, le ciel ou FantasPic t'aidera

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

#64 Message par paulfjujo » lun. 20 mars 2023 18:08

à TempsX ou Francois 77

L'un de vous pourrait-il chronometrer la durée d'effacement de l'OLED
et à quelle vitesse SPI ( freq Clock )

voir ma remarque coté C
incoherence ou pas entre la duréee Theorique et Reelle " effacement ecran "..
Aide toi, le ciel ou FantasPic t'aidera

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

#65 Message par francois77 » lun. 20 mars 2023 18:19

Paul,

Quels fonction tu utilises pour effacer l'écran ?

pour écrire un écran noir de 249 *249 = 670ms

A+

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

#66 Message par paulfjujo » mar. 21 mars 2023 09:24

bonjour Francois,

francois a écrit :Quels fonction tu utilises pour effacer l'écran ?




Code : Tout sélectionner


void Ecran_Noir
(void)
{
 Word i;
  SendCmd(0x2A);
  SendData(0);SendData(0); SendData(0);SendData(0xEF);
  SendCmd(0x2B);
  SendData(0);SendData(0); SendData(0);SendData(0xEF);
  SendCmd(0x2C);
  for (i=0;i<57600;i++)
  { SendData(0x00);SendData(0x00);
  }
 }



vitesse SPI Clock verifié 8MHZ OK à l'oscillo
periode mesurée =126 nS (125nS theorique) avec OSCTUNE=0 pas de correction oscillateur interne 64MHZ


(08:38:05.902) Test duree Ecran Noir (SPI 8MHz!)
(08:38:06.197) Stop. SMT1=4666010 ,soit 291625 uS <--292mS
(08:38:06.232)

francois a écrit : pour écrire un écran noir de 249 *249 = 670ms


pour quelle vitesse SPI ?
Aide toi, le ciel ou FantasPic t'aidera

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

#67 Message par francois77 » mar. 21 mars 2023 10:28

Bonjour Paul,

Pour te répondre avec mes faibles connaissances :cry:

Tu parles d'effacement d'écran alors que c'est plutôt l'écriture d'un écran avec un couleur fixe.

Ta procédure est identique a la mienne, envoi de de 2 octets * 240 *240 et en préalable définition de la zone d'écriture (qui ne doit pas modifier beaucoup le temps de traitement)

Pour la vitesse aucune idée, j'utilise la fonction SPI Bit-bang de Temps-x

Je doit avouer que je ne comprends toujours pas comment on peut aller plus vite que le mode SPI Bit-bang avec un 18f26k22 en ASM.

La vitesse de transfert est lié uniquement a la fréquence d'horloge du pic ?

Temps d'écriture d'un octet 5.6875µS * 240 *240 *2 = 0.6552 seconde

Je suis preneur de toute explication sur le sujet

A+

Francois

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

#68 Message par paulfjujo » mar. 21 mars 2023 12:17

francois77 a écrit :

Je doit avouer que je ne comprends toujours pas comment on peut aller plus vite que le mode SPI Bit-bang avec un 18f26k22 en ASM.

La vitesse de transfert est lié uniquement a la fréquence d'horloge du pic ?

Temps d'écriture d'un octet 5.6875µS * 240 *240 *2 = 0.6552 seconde


Oui, surtout de la frequence d'horloge du SPI ...mais pas seulement !
et accessoirement lié aussi à la frequence du PIC (FOSC) qui pilote les envois successif de data en SPI

en bit bang ,on a en plus ,les decalages à gerer ...qui prend du temps

d'ou vient cette valeur de 5.6875µS ?
du comptage de nombre d'instructions (en mode SPI bit bang) ?


si SPI speed = 8MHz
1 byte -> 8x 0,125µS=> 1µS (au niveau SPI HARDWARE)
mais il faut quelques BAUDS ( pour la detection de fin transfert des 8 bits)
et aussi des cycles MCU pour la boucle d'ecriture des 115200 envois

raisonnement uniquement au niveau SPI (theorique seulement) :
240x240x2 x 1µS =>115200µS --> 115mS
hors le chrono donne 291mS

(09:33:59.947) Test duree Ecran Noir (SPI 8MHz!)
(09:34:00.247) Stop. SMT1=4666010 ,soit 291625 uS 291mS !
291625 /115200 => moyenne de 2,53µS/byte

On va donc bien moins vite que la theorie ideale, meme en SPI hardware !
Aide toi, le ciel ou FantasPic t'aidera

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

#69 Message par francois77 » mar. 21 mars 2023 12:52

paulfjujo a écrit :
francois77 a écrit :

d'ou vient cette valeur de 5.6875µS ?
du comptage de nombre d'instructions (en mode SPI bit bang) ?

!


C'est le temps d''écriture d'un Octet


dehors!! sur mon vélo
A+

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

#70 Message par paulfjujo » mar. 21 mars 2023 14:38

.. bon, j'ai cherché moi-meme ..

donner_oled:
1 bsf LCD_DC ; DC = 1 en mode donnée
2 bra spi ; ecriture des données

spi: ;
1 movwf envoyer ;
1 movlw D'8' ; envoies de 8 bits
1 movwf bits ;
ev1_oled: ;
1 ou 2 btfss envoyer,7 ; 1 lecture sur le bit 7
1 bra ev2_oled ;
1 bsf LCD_MOSI ; envoie 1

1 bsf LCD_SCK ;
1 bcf LCD_SCK ;
2 bra ev3_oled ;
ev2_oled: ;
1 bcf LCD_MOSI ; envoie 0
1 bsf LCD_SCK ;
1 bcf LCD_SCK ;
ev3_oled: ;
1 rlncf envoyer,F ; rotation des bits à gauche sans carry
1 decfsz bits,F ;
2 bra ev1_oled ;
2 return ;

95 cycles * 0.0625 = 5.9375 µS
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage ASM »

Qui est en ligne

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