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
Fonctionnement des "FONT" sur écran OLED
la la totale
Code : Tout sélectionner
i=4;
NB= NB & ~(1<< i); // bit a zer0
NB=NB | (1<< i); // bit a 1
if (texte[1] & (1u<<i))
{
NB= NB & ~(1<< i); // bit a zer0
}
else
NB=NB | (1<< i);
Fonctionnement des "FONT" sur écran OLED
bon j'explique le dernier
NB= NB & ~(1<< i); // bit a zer0
NB=NB | (1<< i); // bit a 1
j'ai mis i=4
donc on positionne le 4eme bit de NB a zero pour le premier et a 1 pour le 2eme
le test if toujours en fonction de i donc le 4eme
test si le 4eme de texte[i] si est a 1 si est a 1 blala s'il est a zero blabla
c'est oK ?
NB= NB & ~(1<< i); // bit a zer0
NB=NB | (1<< i); // bit a 1
j'ai mis i=4
donc on positionne le 4eme bit de NB a zero pour le premier et a 1 pour le 2eme
le test if toujours en fonction de i donc le 4eme
test si le 4eme de texte[i] si est a 1 si est a 1 blala s'il est a zero blabla
c'est oK ?
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 :
Non Maï , je ne comprends pas désolé.
J'avance de mon coté mais je suis de rien, j'ai fais ca pour le moment . Je pense qu'il serait facile que tu suive mon raisonnement pour me corriger, plutot que j'essaye de comprendre le tiens qui est trop pechû pour moi .
J'en suis rendu la pour le moment .
Je créer 16 tableaux correspondant à mes 16 segments verticaux, qu'il va falloir que je place les uns a cotés des autres.
Ces 16 segments sont fabriqués en 2 temps . les 8 premières valeurs reçues fabrique les 8 premiers segments .
les 8 autres fabriquent les 8 derniers segments.
Il me faut recevoir 8 valeurs avant d'avoir mes 8 segments complets.
une fois mon segment enforme de tableau créer . j'additionne le tout pour obtenir ma valeur à envoyer.
ca donne :
J'avance de mon coté mais je suis de rien, j'ai fais ca pour le moment . Je pense qu'il serait facile que tu suive mon raisonnement pour me corriger, plutot que j'essaye de comprendre le tiens qui est trop pechû pour moi .
J'en suis rendu la pour le moment .
Je créer 16 tableaux correspondant à mes 16 segments verticaux, qu'il va falloir que je place les uns a cotés des autres.
Ces 16 segments sont fabriqués en 2 temps . les 8 premières valeurs reçues fabrique les 8 premiers segments .
les 8 autres fabriquent les 8 derniers segments.
Il me faut recevoir 8 valeurs avant d'avoir mes 8 segments complets.
une fois mon segment enforme de tableau créer . j'additionne le tout pour obtenir ma valeur à envoyer.
ca donne :
Code : Tout sélectionner
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) ;
}
for (i=0;i<7;i++){
tableau_8[i] = ( (font16x8[352+7+i])>>7) && 0x01) ;
tableau_9[i] = ( (font16x8[352+7+i])>>6) && 0x01) ;
tableau_10[i] = ( (font16x8[352+7+i])>>5) && 0x01) ;
tableau_11[i] = ( (font16x8[352+7+i])>>4) && 0x01) ;
tableau_12[i] = ( (font16x8[352+7+i])>>3) && 0x01);
tableau_13[i] = ( (font16x8[352+7+i])>>2) && 0x01) ;
tableau_14[i] = ( (font16x8[352+7+i])>>1) && 0x01) ;
tableau_15[i] = ( (font16x8[352++7i]) && 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_16 = (tableau_16[0]*128) + (tableau_16[0]*64) + (tableau_16[0]*32) + (tableau_16[0]*16) + (tableau_16[0]*8) + (tableau_16[0]*4) + (tableau_16[0]*2) + (tableau_16[0]) )
OLED_M_data(valeur_16);
} 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 :
Apres correction je n'ai besoin que de 8 tableaux . je repete deux fois l'operation .
par contre j'ai un probléme à la compilation avec ceci .
Il me dit "pointer required" sur cette ligne
tableau_0[i] = ( (font16x8[352+i])>>7) && 0x01) ;
par contre j'ai un probléme à la compilation avec ceci .
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++7i]) && 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);
}Il me dit "pointer required" sur cette ligne
tableau_0[i] = ( (font16x8[352+i])>>7) && 0x01) ;
Fonctionnement des "FONT" sur écran OLED
Fonctionnement des "FONT" sur écran OLED
Bonjour,
Jérémy, si cela peut t'aider faire une recherche de ssd1306 i2c example avec notamment l'exemple complet: OLED 128x64 SSD1306 I2C PIC16F1788 driver qui, certes ne s'appuie pas sur les même fontes, mais a le mérite de ne pas partir de zéro (toujours s'inspirer et lire le code d'autrui ;-)
Jérémy, si cela peut t'aider faire une recherche de ssd1306 i2c example avec notamment l'exemple complet: OLED 128x64 SSD1306 I2C PIC16F1788 driver qui, certes ne s'appuie pas sur les même fontes, mais a le mérite de ne pas partir de zéro (toujours s'inspirer et lire le code d'autrui ;-)
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Fonctionnement des "FONT" sur écran OLED
tient voici le final
2 tableaux la matrice et le résultat. comme dab sous debug
mais contine sur ton idée toujours bon de ce gratter
la tête
A+
pS reste plus a tester en grandeur nature
Code : Tout sélectionner
for (k=0;k<2;k++)
{
for (i=0;i<8;i++)
{
for (j=0;j<8;j++)
{
if (tableau_Mat[j] & (1u<<i))
{
tableau_Res[i]=tableau_Res[i] | (1<< j);
}
else
tableau_Res[i]=tableau_Res[i] & ~(1<< j); // bit a zer0
}
}
}
2 tableaux la matrice et le résultat. comme dab sous debug
mais contine sur ton idée toujours bon de ce gratter
A+
pS reste plus a tester en grandeur nature
Fonctionnement des "FONT" sur écran OLED
Fonctionnement des "FONT" sur écran OLED
oups desole je ne suis pas allez jusqu'au bout sous debug
ici amah c'est bon
la dernière passe de K n’était pas bonne mille excuses
ici amah c'est bon
Code : Tout sélectionner
for (k=0;k<2;k++)
{
for (i=0;i<8;i++)
{
for (j=0;j<8;j++)
{
if (tableau_Mat[(j+(8*k))] & (1u<<i))
{
tableau_Res[(i+(8*k))]=tableau_Res[(i+(8*k))] | (1<< j);
}
else
tableau_Res[(i+(8*k))]=tableau_Res[(i+(8*k))] & ~(1<< j); // bit a zer0
}
}
}
la dernière passe de K n’était pas bonne mille excuses
Qui est en ligne
Utilisateurs parcourant ce forum : gwion et 9 invités


