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
Montre analogique GC9A01
- paulfjujo

Maître- Messages : 3309
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
L'aiguille des minutes avance de 60pas pour 1 minute ....
L'aiguille des minutes avance de 1 pas pour 60 pas de secondes !
on a 60 pas pour les secondes table de 60 couples Sin ,Cos en flottant 60x8=480bytes
si on veut avoir un mouvement plus souple pour les minutes, il faudrait augmenter le nombre de pas
exemple 4 pas intermediares on a alors une table de positions x4 => 1920 bytes au lieu de 480
Ladite table pouvant servir aussi pour l'aiguille des heures ..
La resolution graphique limite forcement le detail d'un pas ...
on pourrait meme garder le meme pas pour les minutes et heure ... synchro au pas de la seconde ..AU MOMENT importun bien sur ..
min..module 60sec, heure ...modulo 3600
avec seulement 1 seule table de 60 couple Sin,Cos
suivant la longueur d'aiguille on pourrait prevoir une table precalculée pour
les 60 position x1,y1 finale aiguille secondes X0 et Y0 etant au centre à 119,119
idem pour Minute et heure (aiguilles plus courtes)
3 tables de 60x2 =120 bytes seulement pour definir les positions finales de 3 vecteurs
1 table pour stocker les anciennes positions des 3 aiguilles, pour pouvoir les effacer (avec fond NOIR!)
1 table pour dessiner les positions en cours des 3 aiguilles
ceci pour une representation simpliste des aiguilles : vecteur lineaire
L'arriere plan etant sur FOND NOIR ou couleur unie*
avec dessin des graduation et chiffre sur le pourour
longueur des aiguilles < 110 pour ne pas passer sur les chiffres
une image de fond ... sur 8bits qui n'occuperait de 57600bytes de flash ?
MAIS i le GC9A01 ne peut pas le faire ?
In 3-line serial interface, different display data format is available for two color depths supported by the LCM
listed below.
-4k colors, RGB 4, 4, 4 -bits input.
-65k colors, RGB 5, 6, 5 -bits input
-262k colors, RGB 6, 6, 6 -bits input
on doit sauvegarder dans 1 buffer la position des 3 aiguilles ..pour pouvoir les effacer
et un autre buffer pour afficher les 3 nouvelles positions
suivant la forme , dessin des aiguilles la taille maxi du/des buffer sera à optimiser.
Montre analogique GC9A01
Montre analogique GC9A01
Gérard a écrit :Montre de GG.pdfElle vous plait ma montre?
Wouah bravo Gérard. En plus elle est sur bracelet
Tu gagne haut la main le concours
@++
Montre analogique GC9A01
Montre analogique GC9A01
Montre analogique GC9A01
- paulfjujo

Maître- Messages : 3309
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
ça tourne
avec compilation, pour la video
#define A_Fond
ICI
à suivre :
deboires recontérs .. explications ....
et software XC8 18F47K42
ça tourne
avec compilation, pour la video
#define A_Fond
ICI
à suivre :
deboires recontérs .. explications ....
et software XC8 18F47K42
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Montre analogique GC9A01
Montre analogique GC9A01
Wouah bravo paulfjujo
joli résultat
J'ai reçu mon écran mardi mais pas moyen de programmer mon 18f26k22 avec pickit standalone pour mes premières tests
je ne sais pas pourquoi. Le pic n'est pas détecté a chaque fois et quand bien même il est détecté, dès que je sélectionne le .hex pouf il n'est plus détecté
Pareil quand j'arrive a sélectionner le .hex + écrire dans le pic a a fin de l'écriture j'ai une erreur mémoire 0x000000 (de mémoire) donc je n'ai pas pu avancer malheureusement.
et apres j'ai abandonné car mon pic n'était simplement pu jamais détecté.
J'ai essayé en alimentant le pic a part et via le pickit
peut être qu'il y a des résistances ou autre a mettre ?
@++
J'ai reçu mon écran mardi mais pas moyen de programmer mon 18f26k22 avec pickit standalone pour mes premières tests
Pareil quand j'arrive a sélectionner le .hex + écrire dans le pic a a fin de l'écriture j'ai une erreur mémoire 0x000000 (de mémoire) donc je n'ai pas pu avancer malheureusement.
J'ai essayé en alimentant le pic a part et via le pickit
@++
Montre analogique GC9A01
- paulfjujo

Maître- Messages : 3309
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
venom a écrit :....
J'ai essayé en alimentant le pic a part et via le pickitpeut être qu'il y a des résistances ou autre a mettre ?
Utilises-tu l'appli "Pickitminus.exe" ?
il faut mettre une R de 10k de rappel sur la pin 1 MCLR
sinon pas besoinde R pull up sur les Pin data RB7 et Clock RB6
(attention au croisement RB6 et RB7 !)
Tes pin RB6 et RB7 sont-elles libres ? pas de pull-up,pull down ou autre ?
repere > sur pickit3
1 VPP --> sur Pin1 MCLR
2 VDD -> sur alim PIC18F
3 Gnd sur 0V du PIC
4 Datas sur RB7
5 Clock sur RB6
5 not used
ALIMENTATION :
pickit
Tools
soit tu alimentes ton PIC par une alim externe +3,8 à 5V (donc VDD=Valim)
Target VDD source -> Auto detect
soit le Pickit alimente le montage
soit source -> force Target ou PIC et tu regles la tension d'alim via le curseur VDD Pic
nota : sur mes 18F26K22 , certains sont recalcitrants et je suis obligé de baisser la tension d'alim à 3,8V
car à 5V ..problemo ..
mais mon Pickit3 en a déja vu de toutes les couleurs !
il reste neamoins opreationnel avec mes 18F27 ou 47K22
-----------------------------------------------------
je viens de modifie mon aiguille des heures .. 5 vecteurs au lieu d'un seul
pour une aiguille triangulaire !
* avec l'entree RA1=0 mode Test troteuse
j'envoie via le clavier la commande ANG=000 ( .. à 359)
pour verifier le positionnement angulaire
*ATTENTION au positionnement du HAUT de l'ecran GC9A1 pouvant tourner de 0, 90 180,270°
determiné à l'init OLED
de ce fait ma table Sin cos va de -180 à +180° pour indice 0 -359
tables sin cos faites via excel .. *.csv -> puis *.h
ci dessosus la partie code pour animer les aiguilles
* Dans la boucle principale je relis la RTC Sec,Minut,Hour
Code : Tout sélectionner
void Draw_Clock_Face(void)
{ int cc;
int i=0;
// Ecran_Noir(); // probleme de flickering !
// Tracé des 60 reperes secondes
for (i = 0; i < 360; i=i + 6)
{
//2 points par seconde
sx =Table_SinCos[i][0];
sy =Table_SinCos[i][1],
xx0 = sx * 104 + 119;
yy0 = sy * 104 + 119;
PutPixel(xx0, yy0, _Blanc);
xx0 = sx * 105 + 119;
yy0 = sy * 105 + 119;
//Points Minutes
PutPixel(xx0, yy0, _Blanc);
// Repere des 4 quart de cadran
// if (i == 0 || i == 180) FillCircle(xx0, yy0, 4, _Blanc);
// if (i ==90 || i == 270) FillCircle(xx0, yy0, 4, _Blanc);
}
for ( i = 0; i < 360; i =i+30)
{
sx =Table_SinCos[i][0];
sy =Table_SinCos[i][1];
xx0 = sx * 115 + 119; // was 114 + 119;
yy0 = sy * 115 + 119;
xx1 = sx * 99 + 119; // was 100,119
yy1 = sy * 99 + 119;
Draw_Line(xx0, yy0, xx1, yy1,_Vert);
}
// uint8_t DrawChar(int x, int y, uint8_t ch, uint16_t color)
DrawCText(119,12,"12",_Blanc);
DrawCText(119,224,"6", _Blanc);
DrawChar(12, 119,'9', _Blanc);
DrawChar(224,119,'3', _Blanc);
//effacement des anciens vecteurs aiguilles
if(Once>0)
{
if( Test_Position_Troteuse==0) // via saisie ANG=000 a 359
Draw_Line(osx, osy, 119, 119, _Noir);
else
{
Draw_Line(osx, osy, 119, 119, _Noir); //sec
Draw_Line(ohx, ohy, 120, 120, _Noir); // heur
Draw_Line(ohx, ohy, 118, 118, _Noir);
Draw_Line(ohx, ohy, 119, 119, _Noir);
Draw_Line(ohx, ohy, 117, 117, _Noir);
Draw_Line(ohx, ohy, 121, 121, _Noir);
Draw_Line(omx, omy, 119, 119, _Noir); // Minute
FillCircle(119, 119, 4, _Noir);
}
}
if( Test_Position_Troteuse==0) //RA1 input
{ sdeg = Angle;
sx =Table_SinCos[sdeg][0];
sy =Table_SinCos[sdeg][1],
osx = sx * 90 + 119;
osy = sy * 90 + 119;
Draw_Line(osx, osy, 119, 119, _Blanc);
Once=1;
FillCircle(119, 119, 4, _Cyan);
}
else
{ // mise à jour des variables
xz=Sec*6;
sdeg = xz;
mdeg = Minut*6 ;
hdeg = Hour>12? (Hour-12)*30: Hour*30;
hdeg= hdeg + (Minut/4);
// calcul des angles de chaque vecteur
hx = Table_SinCos[hdeg][0]; // sinus
hy = Table_SinCos[hdeg][1]; // cosinus
mx = Table_SinCos[mdeg][0];
my = Table_SinCos[mdeg][1];
sx =Table_SinCos[sdeg][0];
sy =Table_SinCos[sdeg][1],
// position finale des vecteurs Heure,minute,seconde
//longueur des aiguilles HH-> 62 MN->84 Sec->90
ohx = hx * 62 + 119;
ohy = hy * 62 + 119;
omx = mx * 84 + 119;
omy = my * 84 + 119;
osx = sx * 90 + 119;
osy = sy * 90 + 119;
// Tracé des 3 aiguilles
//aiguille des heures ...triangulaire
Draw_Line(ohx, ohy, 121, 121, _Cyan);
Draw_Line(ohx, ohy, 120, 120, _Cyan);
Draw_Line(ohx, ohy, 118, 118, _Cyan);
Draw_Line(ohx, ohy, 122, 122, _Cyan);
Draw_Line(ohx, ohy, 119, 119, _Cyan);
Draw_Line(omx, omy, 119, 119, _Jaune);
Draw_Line(osx, osy, 119, 119, _Rouge);
Once=1;
FillCircle(119, 119, 4, _Rouge);
}
}
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Montre analogique GC9A01
paulfjujo a écrit :venom a écrit :....
J'ai essayé en alimentant le pic a part et via le pickitpeut être qu'il y a des résistances ou autre a mettre ?
Utilises-tu l'appli "Pickitminus.exe" ?
il faut mettre une R de 10k de rappel sur la pin 1 MCLR
sinon pas besoinde R pull up sur les Pin data RB7 et Clock RB6
(attention au croisement RB6 et RB7 !)
Tes pin RB6 et RB7 sont-elles libres ? pas de pull-up,pull down ou autre ?
repere > sur pickit3
1 VPP --> sur Pin1 MCLR
2 VDD -> sur alim PIC18F
3 Gnd sur 0V du PIC
4 Datas sur RB7
5 Clock sur RB6
5 not used
ALIMENTATION :
pickit
Tools
soit tu alimentes ton PIC par une alim externe +3,8 à 5V (donc VDD=Valim)
Target VDD source -> Auto detect
soit le Pickit alimente le montage
soit source -> force Target ou PIC et tu regles la tension d'alim via le curseur VDD Pic
nota : sur mes 18F26K22 , certains sont recalcitrants et je suis obligé de baisser la tension d'alim à 3,8V
car à 5V ..problemo ..
mais mon Pickit3 en a déja vu de toutes les couleurs !
il reste neamoins opreationnel avec mes 18F27 ou 47K22
J'ai bien mis une R de 10k sur le MCLR. Je vérifierai data et clock ! Mais je suis quasiment sûr.
Pour Pickitminus.exe je ne sais pas. J'ai installé pickit 3 programmer je ne pense pas que ça soit la même chose
Dommage je pars pour 3 semaines en plus
Vous conseillé une tension de combien ?
Et alim externe ou via le pickit ?
Ça me rassure si toi aussi paulfjujo tu galère
======================
J'aime bien tes nouvelles aiguilles ça fait propre
@++
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités

