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 ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

Montre analogique GC9A01
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3335
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#131 Message par paulfjujo » lun. 4 mai 2026 09:57

bonjour,

4 couleurs utiles ?
blanc,noir,gris,jaune
taille independante du nombre de couleurs ?

OK, tu as resolu le probleme de taille BMP pour qu'il puisse rentrer dans un 18F26K22 ....

....238 couleurs sont définies dans la palette de mon BMP.
dont au minimum bien reperables, rouge, jaune, vert, cyan, gris clair, gris foncé, noir et blanc

:sifflotte: mon questionnement repose surtout sur la localisation des pixels à reconstituer,
apres affichage aiguille via un mappage compressé de l'arriere plan ?
car une fois affiché sur l'OLED, il occupe quand meme 57600 bytes dans la memoire OLED
mais memoire qu'on ne peut pas lire !
Aide toi, le ciel ou FantasPic t'aidera

Montre analogique GC9A01
Temps-x
Avatar de l’utilisateur
Maître
Maître
Messages : 3011
Enregistré en : juillet 2016
Localisation : Terre

#132 Message par Temps-x » lun. 4 mai 2026 11:57

Bonjour paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message 238 couleurs sont définies dans la palette de mon BMP.

Normalement tu ne devrait pas avoir autant de couleur pour le fichier de la montre de Gérard, à titre d'exemple

Quand je regarde le fichier d'origine on trouve ceci

Informatio.png


Comme tu peux le voir on trouve 10 couleurs, ce qui veux dire qu'il y a un problème lors d'une réduction de l'image.

Une fois réduit dans le même format je trouve ceci

Réduction.png


oops De 10 couleurs en passe à 3476 couleurs :eek: mais d'ou ça peut venir ...? sa reste un problème car la compression serait bien plus importante si j'avais pas ce problème.

La preuve
Si je prends un programme de conversion d'image que j'ai écrit en RapidQ j'obtiens bien mais 10 couleurs, et là il n’y a pas photo
compression impressionnante puisque qu'on passe à 12 Ko (12480 octets)

12 ko.png


:sifflotte: on va bientôt le faire tenir dans un Pic16F84A :sifflotte:

paulfjujo a écrit :Source du message :sifflotte: mon questionnement repose surtout sur la localisation des pixels à reconstituer,


Dans la version du fichier hexadécimal que je mets en téléchargement dans le post #130 il n'y a pas de label.

ils vont être rajoutés aujourd'hui, 240 au total, pour chaque ligne, ce qui fait que tu as déjà un repère sur la ligne à te rendre (hauteur),

il ne reste plus que la largeur à traiter ou il faudra lire la largeur, ça peut aller très vite, je dirais même en 5 ou 10 lectures ça peut être fait, ou
Tu connaîtras la couleur des 2 données, ce qui est insignifiant en ASM :-D à raison de 62,5 ns par instruction,

Après en stock dans la ram.

il ne faudra pas dépassé 25ms si on veut faire autre chose par la suite, comme un vu-métre avec l'aiguille sur les graduations.

Comme j'ai pris une journée de congé, je vais pouvoir rajouter les labels..... :-D

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

Montre analogique GC9A01
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3335
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#133 Message par paulfjujo » lun. 4 mai 2026 14:18

Temps-x a écrit :
Dans la version du fichier hexadécimal que je mets en téléchargement dans le post #130 il n'y a pas de label.
ils vont être rajoutés aujourd'hui, 240 au total, pour chaque ligne, ce qui fait que tu as déjà un repère sur la ligne à te rendre (hauteur),
il ne reste plus que la largeur à traiter ou il faudra lire la largeur, ça peut aller très vite, je dirais même en 5 ou 10 lectures ça peut être fait, ou
Tu connaîtras la couleur des 2 données, ce qui est insignifiant en ASM :-D à raison de 62,5 ns par instruction,
Après en stock dans la ram.
il ne faudra pas dépassé 25ms si on veut faire autre chose par la suite, comme un vu-métre avec l'aiguille sur les graduations.



[quote]ils vont être rajoutés aujourd'hui, 240 au total, pour chaque ligne/[quote

oops .... il y a 240 lignes d'ecran
240x240=57600 !

tu te comprends , c'est déja pas mal ...
:sifflotte: moi, j'ai rien pigé ..
Aide toi, le ciel ou FantasPic t'aidera

Montre analogique GC9A01
Temps-x
Avatar de l’utilisateur
Maître
Maître
Messages : 3011
Enregistré en : juillet 2016
Localisation : Terre

#134 Message par Temps-x » lun. 4 mai 2026 15:49

paulfjujo a écrit :Source du message oops .... il y a 240 lignes d'ecran 240x240=57600 !


C'est le programme écrit en RapidQ qui va tout gérer, pour créer un fichier ça prendra même pas 1 minute, mais bon, il faut l'écrire.

paulfjujo a écrit :Source du message tu te comprends , c'est déja pas mal ..


Je suis parti sur une idée, :roll: mais je ne sais pas si elle va aboutir, pour l'instant c'est bien parti... reste à voir dans la vraie vie :-)

ça sifflote de partout a ce que je peux voir :lol:

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

Montre analogique GC9A01
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3335
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#135 Message par paulfjujo » mar. 5 mai 2026 21:01

bonsoir,


j'ai eu affaire à un drole de phenomene avec MPLABX et XC8
simplement en rajoutant ce bout de code ( apres l'init du CG9A01)


Code : Tout sélectionner

// test triangles
 j=1;
  for (j=1;j<60;j++)
   { 
         
        xz 
=* 6;
        sdeg = xz;
        sx = Table_SinCos[sdeg][0];
        sy = Table_SinCos[sdeg][1];
        omx =( sx * Long_Minute) + 119;
        omy =( sy * Long_Minute) + 119;
             
        Choix 
=1;    
       
//Ligne(omx, omy, 109, 119,Couleur_Aiguille_Minute);  //ok
       //Ligne(omx, omy, 129, 119,Couleur_Aiguille_Minute); //ok
         c1= Draw_Aiguille(omx, omy, 109, 119,1);
         c2= Draw_Aiguille(omx, omy, 129, 119,1);
         sprintf(CRam1," c1=%3d  c2=%3d\r\n",c1,c2);
         Print(CRam1);
        __delay_ms(500);
    }
    
    do
    
{
        NOP();
     }
    while(1); 
    


.........compile pendant >5 minutes
les ventilos du PC sont à fond (5 ventilos + aquaduc system sur CPU) ... donc CPU I7 PC à fond la caisse
la compile continue ..>10 mn ...pas de messages
mais en regardant l'etat Systeme -> services
je vois que j'ai 8 taches compilo cg18 qui sont activées !!!
j'ai donc dû tuer les 8 taches ..pour pouvoir stopper la compil ..

si je lance à nouveau une compile ,il me signale qu'il ne peut pas effacer main.p1

Code : Tout sélectionner

Blocage compilation
rm
: ne peut enlever `build/Config_3/production/main.p1': Permission denied    (main.p1 fait >1,8Mo !)
make[1]: *** [nbproject/Makefile-Config_3.mk:261: .clean-conf] Error 


systeme -> services
tuer la tache cg18 en cours
puis supprimer dans build/Config_3/production/ main.p1

j'ai rechargé mon ancien code main.c ???sans la modif
.. compilation OK en 5sec (1 seule tache cg18 active pendant la compil..)

Par definition , le bug est entre la chaise et le clavier ! mais où ?

Ma vraie question :
comment le compilo peut perdre les pédales à ce point ?

nota: c1= Draw_Aiguille(o..x, o..y, 119, 119,1);
..... pour autres aiguilles est utilisé plus loin , dans le main, sans probleme .

idea !
je pense que le bug se situe avec Draw_Aiguille ..
car je n'avais pas encore chargé l'arriere plan BMP !
..à suivre

==================================================
06/05
...effectivement , en mettant l'image en arriere plan AVANT mon test,

Code : Tout sélectionner


 Ecran_Noir
();
    DrawImage256(0, 0, Image_de_Fond, 240, 240); //1 byte/color  
//Test triangles
  
...etc ...


:-D ça compile OK ..

en cours .. modif aiguilles Minute et heure -> en forme triangle pour en ameliorer la visibilité
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Généralités sur les PICs »

Qui est en ligne

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