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
Compilation programme
Bonjour satinas, et tout le forum,
satinas Je viens d'essayer ton programme que tu as mis ICI, et rien à faire j'arrive pas à le faire fonctionner, pour éviter que tu cherches voici le post ou tu l'a déposé ICI
Les afficheurs s'allume, mais n'avance pas dans le temps.... il reste à zéro.
j'utilise pour le test un Pic16F84, je n'ai pas de Pic16F84A, mais je pense qu'il son similaire, j'ai juste changer l’entête par.....
J'ai aussi changé les valeurs par ceci
satinas As tu fait un plan ?
Ma config pour les afficheurs avec le fichier joints ICI, tu peux l'ouvrir avec le programme que j'ai écrit ICI
Mon programme avance, j'en ferais bientôt une vidéo..... au faite j'ai pas besoin de compter les instructions....
A+
j'utilise pour le test un Pic16F84, je n'ai pas de Pic16F84A, mais je pense qu'il son similaire, j'ai juste changer l’entête par.....
Code : Tout sélectionner
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
LIST p=16F84
#include <p16F84.inc>
radix dec ; par defaut en mode décimal
J'ai aussi changé les valeurs par ceci
Code : Tout sélectionner
getdata
addwf PCL,1 ; segments g f e d c b a dp
retlw B'10000001' ; 0 = 0
retlw B'11110011' ; 1 = 1
retlw B'01001001' ; 2 = 2
retlw B'01100001' ; 3 = 3
retlw B'00110011' ; 4 = 4
retlw B'00100101' ; 5 = 5
retlw B'00000101' ; 6 = 6
retlw B'10110001' ; 7 = 7
retlw B'00000001' ; 8 = 8
retlw B'00100001' ; 9 = 9
satinas As tu fait un plan ?
Ma config pour les afficheurs avec le fichier joints ICI, tu peux l'ouvrir avec le programme que j'ai écrit ICI
Mon programme avance, j'en ferais bientôt une vidéo..... au faite j'ai pas besoin de compter les instructions....
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Compilation programme
Bonjour Temps-x
tu te compliques la vie, j'avais aussi commencé avec un schéma différent, mais cela impliquait de gérer 2 versions du programme, pénible. Donc recentrage sur le schéma exact. Par contre je suis aussi sur 16F84, donc je change juste comme toi la ligne include.
Le premier programme que j'ai fourni affiche MM:SS, il doit incrémenter les secondes dès le reset.
Le second programme démarre en HH:MM donc il bouge pas pendant la première minute. On le passe en MM:SS en appuyant sur les 2 poussoirs à la fois. J'en suis à 1 seconde sur 3 jours, améliorable car la résolution actuelle de la correction est de un dixième de seconde par jour, on doit pouvoir affiner, l'horloge étant très stable.
Tu testes le flag timer, j'y avais même pas pensé, ma pauvre tête
C'est la faute de Paul, il trouve que j'utilise pas assez les interruptions, alors je me rattrape :)
Ok pour le fichier dig, tu veux un plan de quoi ?
tu te compliques la vie, j'avais aussi commencé avec un schéma différent, mais cela impliquait de gérer 2 versions du programme, pénible. Donc recentrage sur le schéma exact. Par contre je suis aussi sur 16F84, donc je change juste comme toi la ligne include.
Le premier programme que j'ai fourni affiche MM:SS, il doit incrémenter les secondes dès le reset.
Le second programme démarre en HH:MM donc il bouge pas pendant la première minute. On le passe en MM:SS en appuyant sur les 2 poussoirs à la fois. J'en suis à 1 seconde sur 3 jours, améliorable car la résolution actuelle de la correction est de un dixième de seconde par jour, on doit pouvoir affiner, l'horloge étant très stable.
j'ai pas besoin de compter les instruction
Tu testes le flag timer, j'y avais même pas pensé, ma pauvre tête
C'est la faute de Paul, il trouve que j'utilise pas assez les interruptions, alors je me rattrape :)
Ok pour le fichier dig, tu veux un plan de quoi ?
Compilation programme
Re
Ben ouais
je suis resté plus d'une minute est rien ne bouge, je refais un essai ce soir, avec schéma de RETRAITE128.
Plus simple que ça, sous MPLAB IDE v8.92 je tourne avec un Pic16F628 virtuellement,
car on réalité j'en n'ait pas, comme celui ci possède un timer1 on peut compter les instructions jusqu’à 65535 pour un quartz à 4Mhz, suffit de le mettre en fonction pour avoir une valeur très précis, bien sur faut le paramétré.
Exemple
Ensuite suffit de regarder dans le timer1 sous MPLAB IDE v8.92 on mettant par exemple un BP
Les valeurs seront les mêmes avec un Pic16F84 au niveau des instructions.
D'abord je recommande cette petite astuce, quand vous bloquez, pensée à utiliser un autre Pic. 
Dans mon programme il y a 5 fonctions
A) mode l'horloge(en fonctionnement normal)
B) mode réglage minute
C) mode réglage heure
D) mode réglage étalonnage
E) alarme(peut être)
A+
satinas a écrit :Source du message u te compliques la vie
Ben ouais
satinas a écrit :Source du message Le second programme démarre en HH:MM donc il bouge pas pendant la première minute
je suis resté plus d'une minute est rien ne bouge, je refais un essai ce soir, avec schéma de RETRAITE128.
satinas a écrit :Source du message Tu testes le flag timer, j'y avais même pas pensé, ma pauvre tête
Plus simple que ça, sous MPLAB IDE v8.92 je tourne avec un Pic16F628 virtuellement,
Exemple
Code : Tout sélectionner
clrf TMR1L
clrf TMR1H
bsf T1CON,TMR1ON ; lancer le timer1
; comptage du sous-programme
bcf T1CON,TMR1ON ; arrêter le timer1
Ensuite suffit de regarder dans le timer1 sous MPLAB IDE v8.92 on mettant par exemple un BP
Les valeurs seront les mêmes avec un Pic16F84 au niveau des instructions.
Dans mon programme il y a 5 fonctions
A) mode l'horloge(en fonctionnement normal)
B) mode réglage minute
C) mode réglage heure
D) mode réglage étalonnage
E) alarme(peut être)
Modifié en dernier par Temps-x le mer. 1 sept. 2021 21:35, modifié 4 fois.
Compilation programme
Dans la gestion des poussoirs les temps d'appui sont variables, c'est pas gênant ?
Avant d'ajouter des fonctionnalités, il faut d'abord qu'elle soit un tant soit peu précise, c'est pas encore gagné, il va falloir attendre des mois pour confirmer. J'ai relancé en modifiant le réglage, j'ai déjà eu des surprises, le réglage n'est pas très linéaire, alors qu'il devrait l'être en théorie :)
Avant d'ajouter des fonctionnalités, il faut d'abord qu'elle soit un tant soit peu précise, c'est pas encore gagné, il va falloir attendre des mois pour confirmer. J'ai relancé en modifiant le réglage, j'ai déjà eu des surprises, le réglage n'est pas très linéaire, alors qu'il devrait l'être en théorie :)
Compilation programme
Re
Dans tout les cas, quand tu règles un paramètre ou tu appuies sur une touche, tu es obligé de passer par les 4 fonctions( voir 5 fonctions)
Ce qui implique une remise à l'heure dans la foulé. je me sert que de 2 boutons pour tout régler.
RA1 (actuellement)
RB0
Je mets tout d'un seule coup, comme ça les réglages ne seront plus à faire.
Ça c'est ben vrai, comme dirais la mère Denis
Pour l'instant je cherche un moyen pour des perdre du temps dans les 1µs, j'aurais était plus facile avec un quartz à 20Mhz
L'étalonnage peut être réglé de 0µs à 99µs dans mon programme, pas besoin de reprogrammer le pic.
A+
satinas a écrit :Source du message Dans la gestion des poussoirs les temps d'appui sont variables, c'est pas gênant ?
Dans tout les cas, quand tu règles un paramètre ou tu appuies sur une touche, tu es obligé de passer par les 4 fonctions( voir 5 fonctions)
Ce qui implique une remise à l'heure dans la foulé. je me sert que de 2 boutons pour tout régler.
RA1 (actuellement)
RB0
satinas a écrit :Source du message Avant d'ajouter des fonctionnalités, il faut d'abord qu'elle soit un tant soit peu précise, c'est pas encore gagné
Je mets tout d'un seule coup, comme ça les réglages ne seront plus à faire.
satinas a écrit :Source du message il va falloir attendre des mois pour confirmer.
Ça c'est ben vrai, comme dirais la mère Denis
Pour l'instant je cherche un moyen pour des perdre du temps dans les 1µs, j'aurais était plus facile avec un quartz à 20Mhz
L'étalonnage peut être réglé de 0µs à 99µs dans mon programme, pas besoin de reprogrammer le pic.
Modifié en dernier par Temps-x le mer. 1 sept. 2021 21:53, modifié 2 fois.
Compilation programme
Bien sur :) des questions idiotes, t'en auras d'autres, je vais en faire ma spécialité.
Quoique pour le passage à l'heure d'été, là c'est un peu embêtant, en plus sa suppression ça va être l'Arlésienne.
Pour le réglage tu fais une grosse boucle d'attente avec une valeur initiale 16 bits. Et l'étalonnage modifie cette valeur.
Quoique pour le passage à l'heure d'été, là c'est un peu embêtant, en plus sa suppression ça va être l'Arlésienne.
Pour le réglage tu fais une grosse boucle d'attente avec une valeur initiale 16 bits. Et l'étalonnage modifie cette valeur.
Compilation programme
satinas a écrit :Source du message Bien sur :) des questions idiotes, t'en auras d'autres, je vais en faire ma spécialité.
Aucune question n'est idiote, surtout dans ce domaine.
satinas a écrit :Source du message Quoique pour le passage à l'heure d'été, là c'est un peu embêtant
j'avais pas pensée....satinas a écrit :Source du message Pour le réglage tu fais une grosse boucle d'attente avec une valeur initiale 16 bits. Et l'étalonnage modifie cette valeur.
Je vais en premier lieu chercher les valeurs qui se trouve dans l'eeprom du pic, puis je la mémorise dans 2 variables(16 bits)
Le premier afficheur qui se trouve à gauche affiche la lettre E le second afficheur et éteint et les 2 autres qui se trouve à droite, affiche
la valeur lu dans l'eeprom.
Et la je bloque pour faire une pause de temps réglable au µs près ...... mais je vais y arrivé...
Modifié en dernier par Temps-x le mer. 1 sept. 2021 23:55, modifié 1 fois.
Compilation programme
Oui j'avais fait ça, affichage de "cXXX" pour le réglage 0 à 999 de la correction stockée en eeprom. Mais le fait d'appuyer sur un bouton à la mise sous tension, ça marchait mal, j'ai laissé tomber car en fin de compte, le réglage il ne doit pas bouger, le stocker n'est pas très utile. En plus faut convertir en décimal pour l'IHM, et ça double vite la taille du programme.
Je comprends pas la difficulté de la boucle, il faut faire en sorte que la décrémentation soit de durée constante quitte à rajouter des nops dans certains cas, ou par exemple mettre des goto en pagaye. J'y réfléchirais demain et ma solution sera payante :)
Bon après réflexion en fait tu veux que la décrémentation dure 1 us, là je vois pas, il faut voir les chose différemment.
Je comprends pas la difficulté de la boucle, il faut faire en sorte que la décrémentation soit de durée constante quitte à rajouter des nops dans certains cas, ou par exemple mettre des goto en pagaye. J'y réfléchirais demain et ma solution sera payante :)
Bon après réflexion en fait tu veux que la décrémentation dure 1 us, là je vois pas, il faut voir les chose différemment.
Modifié en dernier par satinas le mer. 1 sept. 2021 22:25, modifié 1 fois.
Compilation programme
Bonsoir Temps-x et satinas,
Je pensais que c'était gagné ?
Tu as supprimé les 4 transistors ce ne serait pas la cause de ton soucis ?
Je viens de faire un essai sur un afficheur et il faisait la gu....
Je suis nul et chez moi ça marche avec ce schéma et le programme de "satinas"
Je ne trouve aucune occurrence a cette ligne:
Ou c'est la fatigue
Bonne soirée a tous
Temps-x a écrit :Personnellement je n'ai pas mi de transistor pour mes afficheurs, mais je pense que c'est mieux d'en mettre.
J'ai cablé le tout, et le programme tourne, il y a plus cas faire le comptage
Je pensais que c'était gagné ?
Temps-x a écrit : Je viens d'essayer ton programme que tu as mis et rien à faire j'arrive pas à le faire fonctionner,
Les afficheurs s'allume, mais n'avance pas dans le temps.... il reste à zéro.
Tu as supprimé les 4 transistors ce ne serait pas la cause de ton soucis ?
Je viens de faire un essai sur un afficheur et il faisait la gu....
Je suis nul et chez moi ça marche avec ce schéma et le programme de "satinas"
satinas a écrit : de Temps-x .Tu testes le flag timer, j'y avais même pas pensé, ma pauvre tête
Je ne trouve aucune occurrence a cette ligne:
Ou c'est la fatigue
Bonne soirée a tous
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Compilation programme
Bonsoir Pikachu,
je n'ai pas supprimé les transistors, c"était juste une réflexion. En programmation je fais toujours très court, forcément j'applique la même méthode en électronique, et ça marche souvent moins bien, c'est vrai :)
Pour la ligne de test de T0IF, elle ne sert à rien, car on a autorisé les interruptions avec GIE = 1, et un seul type d'interruption avec TOIE = 1. Donc si une interruption se produit, c'est forcément l'interruption timer, et TOIF est obligatoirement passé à 1. J'ai donc appliqué la règle exposée ci-dessus.
Si vous appuyez sur le poussoir heure, puis le poussoir minute, donc les 2 appuyés en même temps pendant 1 seconde, est ce que l'affichage MM:SS apparaît ?
Bon la première question s'adressait à Temps-x,
, bonne soirée
je n'ai pas supprimé les transistors, c"était juste une réflexion. En programmation je fais toujours très court, forcément j'applique la même méthode en électronique, et ça marche souvent moins bien, c'est vrai :)
Pour la ligne de test de T0IF, elle ne sert à rien, car on a autorisé les interruptions avec GIE = 1, et un seul type d'interruption avec TOIE = 1. Donc si une interruption se produit, c'est forcément l'interruption timer, et TOIF est obligatoirement passé à 1. J'ai donc appliqué la règle exposée ci-dessus.
Si vous appuyez sur le poussoir heure, puis le poussoir minute, donc les 2 appuyés en même temps pendant 1 seconde, est ce que l'affichage MM:SS apparaît ?
Bon la première question s'adressait à Temps-x,
, bonne soiréeRetourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités


