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 : Jérémy
Fonctionnement des "FONT" sur écran OLED
Bonjour à tous et maï,
maï, sais tu qu'il est possible de rééditer son post, car sauf ton respect, 3 posts dont 2 corrections en 20 minutes ne facilitent pas le suivi du fil de discussion ;-))
Edit: Correction éditoriales et évite de faire tourner le compteur qui ne représente rien pour moi (la quantité n'équivaut pas à la qualité ;-)
maï, sais tu qu'il est possible de rééditer son post, car sauf ton respect, 3 posts dont 2 corrections en 20 minutes ne facilitent pas le suivi du fil de discussion ;-))
Edit: Correction éditoriales et évite de faire tourner le compteur qui ne représente rien pour moi (la quantité n'équivaut pas à la qualité ;-)
Modifié en dernier par Claudius le lun. 16 mai 2016 18:42, modifié 3 fois.
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Fonctionnement des "FONT" sur écran OLED
Fonctionnement des "FONT" sur écran OLED
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Je commence a entrevoir quelque chose . mais ce sont ces lignes qui me perturbe :
(1u<<i)
& ~(1<< j)
C'est quoi ce "u" ?
pourquoi mettre l'inverse d'un décalage ? "~"
Vraiment je comprends pas ! je vais essayer avec un chiffre exemple !
@claudius :
dans les liens donner, il existe bien la librairie mais pour une font de 5x8 "classique", uitlisans le SSD1306 normalement ! Je n'ai aps trouver d'exemple de conversion comme pour la font en #1 .
(1u<<i)
& ~(1<< j)
C'est quoi ce "u" ?
pourquoi mettre l'inverse d'un décalage ? "~"
Vraiment je comprends pas ! je vais essayer avec un chiffre exemple !
@claudius :
dans les liens donner, il existe bien la librairie mais pour une font de 5x8 "classique", uitlisans le SSD1306 normalement ! Je n'ai aps trouver d'exemple de conversion comme pour la font en #1 .
Fonctionnement des "FONT" sur écran OLED
Jérémy a écrit :Je commence a entrevoir quelque chose . mais ce sont ces lignes qui me perturbe :
(1u<<i)
& ~(1<< j)
C'est quoi ce "u" ?
pourquoi mettre l'inverse d'un décalage ? "~"
Vraiment je comprends pas ! je vais essayer avec un chiffre exemple !
@claudius :
dans les liens donner, il existe bien la librairie mais pour une font de 5x8 "classique", uitlisans le SSD1306 normalement ! Je n'ai aps trouver d'exemple de conversion comme pour la font en #1 .
jeremy une recherche sur langage C bit
fait un essai avec i=1; puis des décalage a droite ou a gauche peut importe
allez un peu explication:
Pour passer a zero le bit d'une variable:
Si tu as 0b00000001, puis un décalage a gauche, tu as 0b00000010, si tu fais le complément-> 0b11111101, si tu fais un and logique avec une variable le bit 1 de cette variable ,sera bien a zero quleque soit l'etat du bit de la variable et c'est ce que l'on veut
Pour passer un bit a un, toujours avec mon 0b00000010 la pas de complément mais juste un ou logique donc quelle que soit etat du bit1 de la variable celui ci va passer a 1 et c'est ce que l'on voulez
Modifié en dernier par Anonymous le lun. 16 mai 2016 18:59, modifié 2 fois.
Fonctionnement des "FONT" sur écran OLED
Jérémy a écrit : dans les liens donnés, il existe bien la librairie mais pour une font de 5x8 "classique", uitlisant le SSD1306 normalement ! Je n'ai pas trouvé d'exemple de conversion comme pour la font en #1.
Précision de langage: Le programme donné au post #27 ne nécessite aucune librairie (sauf pour la gestion de l'I²C que tu maîtrises), il est autonome avec son main (c'est l'avantage de cet exemple, car comme certains que je ne citerai pas, je suis réfractaire aux librairies tant qu'elles n'ont pas fait leur preuve, supportées correctement et j'ajoute: Code en Open Source (déformation professionnelle ;-)
Maintenant, il n'y a plus qu'à adapter ledit programme pour la fonte que tu souhaites...
Edit: Ajout: "sauf pour la gestion de l'I²C que tu maîtrises"
Modifié en dernier par Claudius le lun. 16 mai 2016 19:12, modifié 1 fois.
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Fonctionnement des "FONT" sur écran OLED
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Trop de chose d'un coup .
JE rencontre un problem e de ROM avec mon programme pourri ! deja il n'y a plus d'erreur de compilation
JE rencontre un problem e de ROM avec mon programme pourri ! deja il n'y a plus d'erreur de compilation
Code : Tout sélectionner
//---------------------------------------------------------------------------------
void affichage_L(){
unsigned int segment,valeur_0,valeur_1,valeur_2,valeur_3,valeur_4,valeur_5,valeur_6,valeur_7;
OLED_M_command(SSD1306_COLUMNADDR); // On configure la largeur de l'ecran
OLED_M_command(40); // Colonne minimum
OLED_M_command(47); // Colonne MAximum;
OLED_M_command(SSD1306_PAGEADDR); // On configure la hauteur de l'ecran
OLED_M_command(1); // Colonne minimum
OLED_M_command(3); // Colonne MAximum;
i=0;
// 8 premier segments
for (i=0;i<7;i++){
tableau_0[i] = ( ((font16x8[352+i])>>7) && 0x01 ) ;
tableau_1[i] = ( ((font16x8[352+i])>>6) && 0x01) ;
tableau_2[i] = ( ((font16x8[352+i])>>5) && 0x01) ;
tableau_3[i] = ( ((font16x8[352+i])>>4) && 0x01) ;
tableau_4[i] = ( ((font16x8[352+i])>>3) && 0x01) ;
tableau_5[i] = ( ((font16x8[352+i])>>2) && 0x01) ;
tableau_6[i] = ( ((font16x8[352+i])>>1) && 0x01) ;
tableau_7[i] = ( (font16x8[352+i]) && 0x01) ;
}
valeur_0 = ( (tableau_0[0]*128) + (tableau_0[1]*64) + (tableau_0[2]*32) + (tableau_0[3]*16) + (tableau_0[4]*8) + (tableau_0[5]*4) + (tableau_0[6]*2) + (tableau_0[7]) );
OLED_M_data(valeur_0);
valeur_1 = ( (tableau_1[0]*128) + (tableau_1[1]*64) + (tableau_1[2]*32) + (tableau_1[3]*16) + (tableau_1[4]*8) + (tableau_1[5]*4) + (tableau_1[6]*2) + (tableau_1[7]) );
OLED_M_data(valeur_1);
valeur_2 = ( (tableau_2[0]*128) + (tableau_2[1]*64) + (tableau_2[2]*32) + (tableau_2[3]*16) + (tableau_2[4]*8) + (tableau_2[5]*4) + (tableau_2[6]*2) + (tableau_2[7]) );
OLED_M_data(valeur_2);
valeur_3 = ( (tableau_3[0]*128) + (tableau_3[1]*64) + (tableau_3[2]*32) + (tableau_3[3]*16) + (tableau_3[4]*8) + (tableau_3[5]*4) + (tableau_3[6]*2) + (tableau_3[7]) );
OLED_M_data(valeur_3);
valeur_4 = ( (tableau_4[0]*128) + (tableau_4[1]*64) + (tableau_4[2]*32) + (tableau_4[3]*16) + (tableau_4[4]*8) + (tableau_4[5]*4) + (tableau_4[6]*2) + (tableau_4[7]) );
OLED_M_data(valeur_4);
valeur_5 = ( (tableau_5[0]*128) + (tableau_5[1]*64) + (tableau_5[2]*32) + (tableau_5[3]*16) + (tableau_5[4]*8) + (tableau_5[5]*4) + (tableau_5[6]*2) + (tableau_5[7]) );
OLED_M_data(valeur_5);
valeur_6 = ( (tableau_6[0]*128) + (tableau_6[1]*64) + (tableau_6[2]*32) + (tableau_6[3]*16) + (tableau_6[4]*8) + (tableau_6[5]*4) + (tableau_6[6]*2) + (tableau_6[7]) );
OLED_M_data(valeur_6);
valeur_7 = ( (tableau_7[0]*128) + (tableau_7[1]*64) + (tableau_7[2]*32) + (tableau_7[3]*16) + (tableau_7[4]*8) + (tableau_7[5]*4) + (tableau_7[6]*2) + (tableau_7[7]) );
OLED_M_data(valeur_7);
// 8 segments suivants
for (i=0;i<7;i++){
tableau_0[i] = ( ((font16x8[352+7+i])>>7) && 0x01) ;
tableau_1[i] = ( ((font16x8[352+7+i])>>6) && 0x01) ;
tableau_2[i] = ( ((font16x8[352+7+i])>>5) && 0x01) ;
tableau_3[i] = ( ((font16x8[352+7+i])>>4) && 0x01) ;
tableau_4[i] = ( ((font16x8[352+7+i])>>3) && 0x01);
tableau_5[i] = ( ((font16x8[352+7+i])>>2) && 0x01) ;
tableau_6[i] = ( ((font16x8[352+7+i])>>1) && 0x01) ;
tableau_7[i] = ( (font16x8[352+7+i]) && 0x01) ;
}
valeur_0 = ( (tableau_0[0]*128) + (tableau_0[0]*64) + (tableau_0[0]*32) + (tableau_0[0]*16) + (tableau_0[0]*8) + (tableau_0[0]*4) + (tableau_0[0]*2) + (tableau_0[0]) );
OLED_M_data(valeur_0);
valeur_1 = ( (tableau_1[0]*128) + (tableau_1[0]*64) + (tableau_1[0]*32) + (tableau_1[0]*16) + (tableau_1[0]*8) + (tableau_1[0]*4) + (tableau_1[0]*2) + (tableau_1[0]) );
OLED_M_data(valeur_1);
valeur_2 = ( (tableau_2[0]*128) + (tableau_2[0]*64) + (tableau_2[0]*32) + (tableau_2[0]*16) + (tableau_2[0]*8) + (tableau_2[0]*4) + (tableau_2[0]*2) + (tableau_2[0]) );
OLED_M_data(valeur_2);
valeur_3 = ( (tableau_3[0]*128) + (tableau_3[0]*64) + (tableau_3[0]*32) + (tableau_3[0]*16) + (tableau_3[0]*8) + (tableau_3[0]*4) + (tableau_3[0]*2) + (tableau_3[0]) );
OLED_M_data(valeur_3);
valeur_4 = ( (tableau_4[0]*128) + (tableau_4[0]*64) + (tableau_4[0]*32) + (tableau_4[0]*16) + (tableau_4[0]*8) + (tableau_4[0]*4) + (tableau_4[0]*2) + (tableau_4[0]) );
OLED_M_data(valeur_4);
valeur_5 = ( (tableau_5[0]*128) + (tableau_5[0]*64) + (tableau_5[0]*32) + (tableau_5[0]*16) + (tableau_5[0]*8) + (tableau_5[0]*4) + (tableau_5[0]*2) + (tableau_5[0]) );
OLED_M_data(valeur_5);
valeur_6 = ( (tableau_6[0]*128) + (tableau_6[0]*64) + (tableau_6[0]*32) + (tableau_6[0]*16) + (tableau_6[0]*8) + (tableau_6[0]*4) + (tableau_6[0]*2) + (tableau_6[0]) );
OLED_M_data(valeur_6);
valeur_7 = ( (tableau_7[0]*128) + (tableau_7[0]*64) + (tableau_7[0]*32) + (tableau_7[0]*16) + (tableau_7[0]*8) + (tableau_7[0]*4) + (tableau_7[0]*2) + (tableau_7[0]) );
OLED_M_data(valeur_7);
}0 1 mikroCPIC1618.exe -MSF -DBG -pP16F1847 -DL -O11111114 -fo16 -N"C:\Users\Jeremy\....
0 122 Compilation Started chiffre.h
250 123 Compiled Successfully CARN2.c
0 127 All files Compiled in 47 ms
71 342 There is not enough ROM space __Lib_System.c
69 304 function size exceeds page boundaries [affichage_L] CARN2.c
30 392 Address must be greater than 0 main CARN2.c
30 392 Address must be greater than 0 main CARN2.c
30 392 Address must be greater than 0 main CARN2.c
30 392 Address must be greater than 0 main CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
163 392 Address must be greater than 0 OLED_M_Init CARN2.c
Fonctionnement des "FONT" sur écran OLED
Fonctionnement des "FONT" sur écran OLED
Fonctionnement des "FONT" sur écran OLED
Jérémy: De toute façon et déjà, on n'écrit pas dans le cas présent en Langage C tableau_0[i] = ( ((font16x8[352+i])>>7) && 0x01 ) ; mais plutôt tableau_0[i] = ( ((font16x8[352+i])>>7) & 0x01 ) ; pour "isoler" le bit 0 d'une variable...
Comme le sujet m'intéresse présentement pour d'autres raisons (simulation avec gpsim de ce fameux SSD1306), je remarque que dans le programme sus-cité à mon post #27, il n'y a aucune manipulation de bits ... comme quoi, cela n'est peut-être pas la bonne piste (qui est en passant, très gourmande en ressources cpu et en terme de nombre de lignes de code ;-)
Comme le sujet m'intéresse présentement pour d'autres raisons (simulation avec gpsim de ce fameux SSD1306), je remarque que dans le programme sus-cité à mon post #27, il n'y a aucune manipulation de bits ... comme quoi, cela n'est peut-être pas la bonne piste (qui est en passant, très gourmande en ressources cpu et en terme de nombre de lignes de code ;-)
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Fonctionnement des "FONT" sur écran OLED
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Oui c'est pour cela que je ne comprends pas !
Je sais même pas ou il faut la conversion !! Je suis ne grosse buse désolé , je pense que ce sujet va tomber dans mes oubliettes!
Si je n'arrive même pas a faire fonctionner mon code
Il faut que j'insiste sur celui de Maï
Je sais même pas ou il faut la conversion !! Je suis ne grosse buse désolé , je pense que ce sujet va tomber dans mes oubliettes!
Si je n'arrive même pas a faire fonctionner mon code
Il faut que j'insiste sur celui de Maï
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités


