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 OLED 0.96 128x64
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#41 Message par paulfjujo » dim. 26 sept. 2021 17:56

bonsoir Temps-X et à tous,

j'ai reçu mon afficheur OLED SPI , format 1,3"
mais qui semble differer du tiens vu son comportement
et aussi parceque le driver est different SSD1106 ? au lieu de SSD1306

Test_2_OLED_SPI_1-3p_2021-0926.jpg

Test_1_OLED_SPI_1-3p_2021-0926.jpg

test avec ces 2 versions Hex (celui du post#1 et retouché )

SSD1306_SPI_asm_hex.zip


j'ai pu lire ceci :

There is only one small difference between SSD1306 and SH1106:
The SH1106 controller has an internal RAM of 132x64 pixel.
The SSD1306 only has 128x64 pixel.

First problem for standard 128x64 OLEDs with SH1106 controller is:
How is the 128x64 window mapped into the 132x64 RAM?
It seems, that the 128x64 OLED is centered in most cases within the 132x64 area,
that means pixel (2,0) in ram is pixel (0,0) on the display.


mais ça n'explique pas tout ...

je vais re essayer .. en C !
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Écran OLED 0.96 128x64 (SSD1306)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#42 Message par Temps-x » dim. 26 sept. 2021 19:22

Bonsoir paulfjujo, et tout le forum,

:eek: Ah.... ça explique beaucoup de chose ce que tu viens de m'apprendre, oops j'ai reçu un écran SPI il y a 2 mois, et j'ai cru qu'il ne fonctionnait pas, du coup j'ai demandé à Ali Express le remboursement que j'ai obtenu :lol:

Pour le faire fonctionner il faut juste décalé les lignes, si tu veux, je peux te faire un exemple, c'est pas très compliqué, je vais modifier le titre en post #1 Écran OLED 0.96 128x64 (SSD1306)

J'ai le même que toi, livré avec une petite boîte en plastique, et j'ai le même résultat, je t’envoies le code des que j'ai fini.

:roll: Peut-être ouverture d'un nouveau post pour cette écran, Merci ! pour le retour de l'information, je comprends mieux maintenant,
:sifflotte: bon dans cette histoire j'ai eu la TVA gratuite :langue:

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

Écran OLED 0.96 128x64 (SSD1306)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#43 Message par Temps-x » lun. 27 sept. 2021 02:57

Bonjour paulfjujo, et tout le forum,

Une petite question, comment tu sais que c'est un Oled 0.96 132x64 (SH1106) :?:

Pour éviter que tu t'embêtes voici les fichiers aux formats (128x64) ICI et les fichiers aux formats (132x64) ICI c'est les mêmes image que sur la vidéo, mais en dimension différente (elles sont déjà converti en format hexadécimal, y a pu cas...)

:roll: Demain je compte les pixels de l'écran avec une loupe, comme ça on verras bien si il y a 132 pixels.

J'ai fait plein d'essai, rien à faire :mad:

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Écran OLED 0.96 128x64 (SSD1306)
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#44 Message par paulfjujo » lun. 27 sept. 2021 14:42

bonjour,

Temps-x a écrit :
Une petite question, comment tu sais que c'est un Oled 0.96 132x64 (SH1106) :?:



via sa datasheet
DM-OLED13-625_SH1106_Datasheet.pdf
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Écran OLED 0.96 128x64 (SSD1306)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#45 Message par Temps-x » mar. 28 sept. 2021 01:25

Bonsoir paulfjujo, et tout le forum,

J'ai pris le temps de regarder la datasheet de l'écran Oled 0.96 132x64 (SH1106) et je trouve que les adresses sont identiques à l'écran Oled 0.96 128x64 (SH1306), à se point de vu pas grand chose de changé.

Je viens de compter les pixels sur l'écran Oled 0.96 132x64 (SH1106) au binoculaire, je trouve 128 pixels, même si je fais une boucle pour 132 pixels, je trouve 128 pixels.

Le problème ne se pose pas sur la hauteur, mais sur la longueur.

En théorie, en Ram il y a une longueur de 132 pixels pour une ligne, ce qui nous fais une différence de 4 pixels pour 1 ligne, sur 8 lignes ça fait 32 pixels.

il faudrait déposé les données par palier de 128 pixels en ram, et ne pas remplir les 4 pixels restant oops (mais voilà !! comment faire.) idea ! la seule solution que je voie, c'est de changer de ligne quand on arrive à une longueur de 128 pixels.

Je fais un essai histoire de voir si ma théorie est juste, :eek: théorie confirmé, ça fonctionne... :-D

Le code que je te joins doit fonctionner pour un écran Oled 0.96 128x64 (SH1306) et Oled 0.96 132x64 (SH1106), fichier code + fichier compilé ICI

Je vais modifier le post #1 pour que ça fonctionne pour les deux types d'écrans.

:roll: Du coup tu n'as pas besoin de changer le format des images, tu peux les laisser en 128x64. 8-)

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#46 Message par Temps-x » ven. 1 oct. 2021 21:59

Bonsoir paulfjujo, et tout le forum

Je m'excuse pour le code fourni au dessus de celui-ci (post #45), Je viens de le contrôler, et je me suis aperçu qu'il comporte des erreurs.
Vous trouverez la correction en post #1, j'ai changé le non des fichiers qui désormais s'appelle, Oled.asm pour la partie code, et Oled.hex pour celle à programmer dans le pic.

:lol: Le pire dans cette histoire, c'est que ça fonctionnait sur les 2 écrans avec la source qui comporter des erreurs, enfin une chose qui est bien..
avec le code fourni en post #1 vous pouvez gérer les 2 types d'écrans, donc pas besoin de retoucher un code d'un écran à un autre.

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

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#47 Message par paulfjujo » sam. 2 oct. 2021 12:36

bonjour Temps-X et à tous


J'ai retesté ta derniere version OLED.asm sur ma carte BASE 18F26K22
mais avec une connectique un peu differente car j'ai deja RA0 RA1 en analog et RC7 pour UART RX
donc avec

Code : Tout sélectionner

;******** assignations ************ 

#DEFINE rst     LATC,0                 ; RC0 ==> reset de l'écran
#DEFINE cs      LATC,1                 ; RC1 ==> activer ou désactiver la transmission
#DEFINE dc      LATC,2                 ; RC2 ==> sélection du mode : commande = 0 , donnée = 1

#DEFINE pousoir PORTB,0                ; RB0 pousoir de mise en fonction du défilement de l'avion

#DEFINE sck     LATC,3                 ; RC3 ==> horloge de synchronisation 
#DEFINE mosi    LATC,5                 ; RC5 ==> envoyer les données sur écran oled 128x64
#DEFINE led1    LATA,4                 ; RA4 led rouge, témoin de mise en fonction de l'appareil
 


ça ne fonctionnait pas !
mais en regardant de plus pres, j'ai vu que tu armais le PWM sur RC1 RC2
j'ai mis hors service cette partie
===> programme et affichage .. OK

mais la partie texte est un peu tronquée sur le coté gauche .. ce que j'avais déja remarqué avec ce SH1106

OLED_SH1106_decalage_X_2021-1001.jpg


OK avec modif decalage de 4 pixels debut axe X :

Code : Tout sélectionner

     locate 0,4,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21,0,0,0,0                    ; macro : longueur de la donnée, emplacement du départ de la donnée à lire

      locate 2,4,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21,22,0,0,0                   ; macro : longueur de la donnée, emplacement du départ de la donnée à lire

      locate 3,4,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21,44,0,0,0                   ; macro : longueur de la donnée, emplacement du départ de la donnée à lire
         
      locate 4,4,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21,66,0,0,0                   ; macro : longueur de la donnée, emplacement du départ de la donnée à lire

      locate 5,4,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21,88,0,0,0                   ; macro : longueur de la donnée, emplacement du départ de la donnée à lire

      locate 7,4,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21,110,0,0,0                  ; macro : longueur de la donnée, emplacement du départ de la donnée à lire
      
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#48 Message par Temps-x » sam. 2 oct. 2021 12:47

Bonjour paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message mais la partie texte est un peu tronquée sur le coté gauche .. ce que j'avais déja remarqué avec ce SH1106

Tout dépend comment tu as déposé tes données, peux tu mettre le code en entier en téléchargement que je puisse voir, si s'obtient le même résultat.

Normalement la position des caractères ne dépends pas du type de l'écran, seule un affichage graphique pourrais nous faire voir la différence.

A moins que ton décalage commence au début, :sifflotte: qui sait avec ses chinois, on en voit de toute les couleurs avec eux.

Au faite, du obtient quoi sur l'affichage graphique ?

Ah.. ce que je vois tu prépares la fin d'année.

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

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#49 Message par paulfjujo » sam. 2 oct. 2021 14:24

Temps-x a écrit :Bonjour paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message mais la partie texte est un peu tronquée sur le coté gauche .. ce que j'avais déja remarqué avec ce SH1106

Normalement la position des caractères ne dépends pas du type de l'écran, seule un affichage graphique pourrais nous faire voir la différence.
A moins que ton décalage commence au début, :sifflotte: qui sait avec ses chinois, on en voit de toute les couleurs avec eux.
Au faite, du obtient quoi sur l'affichage graphique ?
Ah.. ce que je vois tu prépares la fin d'année.

==> A+



voila le graphique :
OLED_SH1106_avion_2021-1001.jpg


j'ai refait un essai avec décalage sens X de seulement 2 pixels sur les "locate"

Code : Tout sélectionner

  
      locate 0
,2,0                        ; macro : se placer à la hauteur de l'écran, se placer à la largeur de l'écran
      print 21
,0,0,0,0                    ; macro : longueur de la donnée, emplacement du départ de la donnée à lire
   
..etc .. 


.. ça rejoint un post trouvé sur web signalant cette valeur de décalage..entre SH1106 et SD1306

un dernier test en affichant 21 caracteres 123456789012345678901
montre qu'ils sont bien centrés

OLED_SH1106_21chars_per_line_2021-1001.jpg


:!!: il reste encore un PB .. affichage de 6 lignes seulement (non contigues)


:sifflotte: en fin d'année ..ce serait plutot pour 2022
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 960
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#50 Message par venom » sam. 2 oct. 2021 16:32

paulfjujo a écrit : :sifflotte: en fin d'année ..ce serait plutot pour 2022


:lol: Et oui Temps-X le temps passe vite. C'est bientôt 2022 oops Il faut relever la tête des pics et de l'ASM







@++
Mon site web
Mon discord : venom#4888


Retourner vers « Langage ASM »

Qui est en ligne

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