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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Compilation programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2889
Enregistré en : juillet 2016
Localisation : Terre

#121 Message par Temps-x » mer. 1 sept. 2021 15:44

Bonjour satinas, et tout le forum,

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

:roll: Les afficheurs s'allume, mais n'avance pas dans le temps.... il reste à zéro. :sifflotte:

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.... :langue:

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

Compilation programme
satinas
Expert
Expert
Messages : 1489
Enregistré en : novembre 2015

#122 Message par satinas » mer. 1 sept. 2021 16:35

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.

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
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2889
Enregistré en : juillet 2016
Localisation : Terre

#123 Message par Temps-x » mer. 1 sept. 2021 21:01

Re

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, :sifflotte: 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

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. :-D

:roll: D'abord je recommande cette petite astuce, quand vous bloquez, pensée à utiliser un autre Pic. :wink:

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+
Modifié en dernier par Temps-x le mer. 1 sept. 2021 21:35, modifié 4 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Compilation programme
satinas
Expert
Expert
Messages : 1489
Enregistré en : novembre 2015

#124 Message par satinas » mer. 1 sept. 2021 21:10

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

Compilation programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2889
Enregistré en : juillet 2016
Localisation : Terre

#125 Message par Temps-x » mer. 1 sept. 2021 21:15

Re

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. 8-)

==> A+
Modifié en dernier par Temps-x le mer. 1 sept. 2021 21:53, modifié 2 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Compilation programme
satinas
Expert
Expert
Messages : 1489
Enregistré en : novembre 2015

#126 Message par satinas » mer. 1 sept. 2021 21:32

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.

Compilation programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2889
Enregistré en : juillet 2016
Localisation : Terre

#127 Message par Temps-x » mer. 1 sept. 2021 21:46

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

oops 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é...

==> A+
Modifié en dernier par Temps-x le mer. 1 sept. 2021 23:55, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Compilation programme
satinas
Expert
Expert
Messages : 1489
Enregistré en : novembre 2015

#128 Message par satinas » mer. 1 sept. 2021 22:07

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.
Modifié en dernier par satinas le mer. 1 sept. 2021 22:25, modifié 1 fois.

Compilation programme
Pikachu
Débutant
Débutant
Messages : 60
Enregistré en : septembre 2016

#129 Message par Pikachu » mer. 1 sept. 2021 22:25

Bonsoir Temps-x et satinas,
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.... :furieux:
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:
Test IQR.png

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
satinas
Expert
Expert
Messages : 1489
Enregistré en : novembre 2015

#130 Message par satinas » mer. 1 sept. 2021 22:34

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, oops, bonne soirée


Retourner vers « Langage ASM »

Qui est en ligne

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