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
Écran OLED 0.96 128x64
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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 avec ces 2 versions Hex (celui du post#1 et retouché )
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 !
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 avec ces 2 versions Hex (celui du post#1 et retouché )
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.
Écran OLED 0.96 128x64 (SSD1306)
Bonsoir paulfjujo, et tout le forum,
Ah.... ça explique beaucoup de chose ce que tu viens de m'apprendre, 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
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.
Peut-être ouverture d'un nouveau post pour cette écran, pour le retour de l'information, je comprends mieux maintenant,
bon dans cette histoire j'ai eu la TVA gratuite
A+
Ah.... ça explique beaucoup de chose ce que tu viens de m'apprendre, 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
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.
Peut-être ouverture d'un nouveau post pour cette écran, pour le retour de l'information, je comprends mieux maintenant,
bon dans cette histoire j'ai eu la TVA gratuite
A+
Écran OLED 0.96 128x64 (SSD1306)
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...)
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
A+
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...)
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
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Écran OLED 0.96 128x64 (SSD1306)
Écran OLED 0.96 128x64 (SSD1306)
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 (mais voilà !! comment faire.) 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, théorie confirmé, ça fonctionne...
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.
Du coup tu n'as pas besoin de changer le format des images, tu peux les laisser en 128x64.
A+
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 (mais voilà !! comment faire.) 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, théorie confirmé, ça fonctionne...
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.
Du coup tu n'as pas besoin de changer le format des images, tu peux les laisser en 128x64.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
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.
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+
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.
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+
Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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
ç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
OK avec modif decalage de 4 pixels debut axe X :
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
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.
Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Bonjour paulfjujo, et tout le forum,
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, 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+
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, 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+
Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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, 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 :
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
il reste encore un PB .. affichage de 6 lignes seulement (non contigues)
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.
Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
paulfjujo a écrit : en fin d'année ..ce serait plutot pour 2022
Et oui Temps-X le temps passe vite. C'est bientôt 2022 Il faut relever la tête des pics et de l'ASM
@++
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 79 invités