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
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#41 Message par RETRAITE128 » dim. 15 août 2021 10:42

paulfjujo a écrit :bonjour,

RETRAITE128 a écrit :Merci Gérard,

Je ne cherche pas un schéma d'horloge, j'en ai déjà réalisé un paquet; là je voulais juste en réaliser un petite pour notre salon.

Manque de chance ou mauvais choix, mais je suis tombé sur une qui ne fonctionne pas, et de plus personne sur le site pour répondre aux questions.

Merci tout de même,

Cordialement,

Alain


je viens de jeter un oeil sur le source .. mal documenté d'ailleurs

le traitement de l' ISR me parait singulier
deja : on ne mets pas GIE à zero dans l' ISR !
puis , je pense que le timing global est basé sur TMR0 et non pas sur le parametre à modifier 200 -> 195 !

l'init TMR0 =5 donne => 4016µS
l'erreur de temps horloge, est je pense , à ce niveau
modif : TMR5=6 => interrupt modulo 4000µS

a tester ..


Bonjour Pauljujo,

J'ai fait l'essai de modifier le TMR0, mais hélas l'horloge prend rapidement de l'avance et en plus le point des secondes disparaît.
Décidément pas facile,

Cordialement,

Alain

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

#42 Message par satinas » dim. 15 août 2021 11:47

Bonjour

Remplace la partie ISR, jusqu'au RETFIE par ces lignes, à essayer.

Code : Tout sélectionner

ISR     MOVWF     WHAT          ; interruption toutes les 4ms
        MOVLW     .6            ; 4ms = (256-6)*16us
        MOVWF     TMR0
        SWAPF     STATUS,0
        MOVWF     QSTAT
        BCF       INTCON,T0IF
        INCF      DEL0,1        ; DEL0 compte les interruptions

        MOVF      DEL0,0
        XORLW     .125          ; si DEL0 = 125, 1/2 seconde
        BTFSC     STATUS,Z
        BCF       DP            ; point décimal off

        MOVF      DEL0,0
        XORLW     .250          ; si DEL0 = 250, 1 seconde
        BTFSS     STATUS,Z
        GOTO      LABLE
        BSF       DP            ; point décimal on
        CLRF      DEL0          ; raz compteur
        CALL      INCR          ; incrémenter secondes

LABLE   SWAPF     QSTAT,0
        MOVWF     STATUS
        SWAPF     WHAT,1
        SWAPF     WHAT,0
        RETFIE

Compilation programme
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#43 Message par RETRAITE128 » dim. 15 août 2021 14:56

Bonjour Satinas,

Merci pour ce travail, mais hélas les résultats ne sont pas bons.

Le point des secondes a disparu, et l'horloge prend plusieurs minutes de retard en très peu de temps, je suis désolé.

Cordialement,

Alain

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

#44 Message par satinas » dim. 15 août 2021 15:10

Peux-tu nous donner le fichier .ASM actuel en faisant un copier-coller.

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

#45 Message par Temps-x » dim. 15 août 2021 15:29

Bonjour,

Par défaut c'est exprimé en hexadécimal,

Code : Tout sélectionner


KEYX        BSF        STATUS
,RP0
            CLRF    TRISB
            BCF        STATUS
,RP0
            MOVLW    .100                               
<------- il y a comme un problème ici   
            MOVWF    DEL02
            CALL    SCAN
            DECFSZ    DEL02
,1
            GOTO    
$-.2
            BSF        INTCON
,GIE
            BCF        OPTION_REG
,7
            RETURN


RETRAITE128 a écrit :Source du message Le point des secondes a disparu,


De plus, le temps d'affichage des digits et lié à cette routine ci -dessous, qu'il faudra modifier si on voit rien, par défaut il est actuellement de 770 µs approximativement, je trouve que c'est beaucoup, moi j'aurais mi 255 µs

Après tout dépend du quartz utilisé... ?

Code : Tout sélectionner


DELAY01    DECFSZ    DEL
,1
            GOTO    
$-.1
            CLRF    PORTB
            RETURN



==> A+
: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 : 1497
Enregistré en : novembre 2015

#46 Message par satinas » dim. 15 août 2021 16:08

J'avais pas vu qu'il remet à zéro tout le port B.

Code : Tout sélectionner

ISR     MOVWF     WHAT          ; interruption toutes les 4ms
        MOVLW     .6            ; 4ms = (256-6)*16us
        MOVWF     TMR0
        SWAPF     STATUS,0
        MOVWF     QSTAT
        BCF       INTCON,T0IF
        INCF      DEL0,1        ; DEL0 compte les interruptions

        MOVF      DEL0,0
        SUBLW     .125          ; point décimal clignotant
        BTFSC     STATUS,C
        BCF       DP            ; point décimal off
        BTFSS     STATUS,C
        BSF       DP            ; point décimal on

        MOVF      DEL0,0
        XORLW     .250          ; si DEL0 = 250, 1 seconde
        BTFSS     STATUS,Z
        GOTO      LABLE
        CLRF      DEL0          ; raz compteur
        CALL      INCR          ; incrémenter secondes

LABLE   SWAPF     QSTAT,0
        MOVWF     STATUS
        SWAPF     WHAT,1
        SWAPF     WHAT,0
        RETFIE


Il modifie le registre OPTION_REG alors qu'il n'est pas en bank1, c'est donc TMR0 qui serait modifié ?

Mets la ligne "CALL KEY" en commentaire, et vérifie que l'horloge tourne bien, sans la mettre à l'heure, c'est un début :)

Compilation programme
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#47 Message par RETRAITE128 » dim. 15 août 2021 20:54

Bonsoir à tous,

Merci pour vos réponses, mais je ne suis pas un grand spécialiste de la programmation.
Est-ce la dernière partie du programme proposée par satinas que je dois changer dans mon fichier .asm de départ ?
Je ne trouve pas la ligne "CALL KEY "dans le programme complet pour la mettre en commentaire.

Quel fichier .asm actuel voulez vous que je vous joigne?

Tempsx, avez-vous pu continuer sur le pourquoi du comment le lien ne fonctionne pas dans jens file ne fonctionne pas pour enclencher MPASM ?

Je pourrais vous joindre une capture d'écran montrant la configuration de ce programme, si vous me dites comment faire pour l'insérer dans ce texte.

[img]E:\Fichiers%20HEX\Horloge%202\Capture.png[/img]

Encore mille merci pour vos aides,

Cordialement,

Alain

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

#48 Message par satinas » dim. 15 août 2021 21:08

Supprimer et remplacer une partie du programme.
Partie à supprimer :

Code : Tout sélectionner

ISR   BCF      INTCON,GIE
      MOVWF   WHAT
      SWAPF   STATUS,0
      MOVWF   QSTAT
      BCF      INTCON,T0IF
      MOVLW   .5
      MOVWF   TMR0
      INCF   DEL0,1
      MOVF   DEL0,0
      ANDLW   B'01111111'
      BCF      STATUS,Z
      XORLW   .125
      BTFSS   STATUS,Z
      GOTO   LABLE
      BTFSS   DEL0,7
      GOTO   $+.5
      CLRF   DEL0
      CALL   INCR
      GOTO   LABLE
      GOTO   LABLE
      BTFSS   DEL0,7
      GOTO   $+.5
      CLRF   DEL0
      BCF   DP      ; DECIMAL  POINT
      CALL   INCR
      GOTO   LABLE
      MOVLW   .200   ; DECIMAL POINT DELAY SETTING
      MOVWF   DEL0   ;DECIMAL POINT
      BSF   DP
LABLE SWAPF   QSTAT,0
      MOVWF   STATUS
      SWAPF   WHAT,1
      SWAPF   WHAT,0
      BSF      INTCON,GIE
      RETFIE


Mettre un ; devant la ligne CALL KEY en fin de programme, comme ceci :

Code : Tout sélectionner

      BSF      INTCON,GIE
      BCF      STATUS,RP0
      CALL   SCAN
;     CALL   KEY
      GOTO   $-.2   
            
      ORG      2007h
      DATA   3FF1h
      END


Pas de saisie à la main, hein :-) si vous ne savez pas faire du copier-coller, ce sera plus simple de vous donner le programme complet modifié pour test.

Compilation programme
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1938
Âge : 67
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#49 Message par Gérard » dim. 15 août 2021 22:18

Je suis toujours d'avis qu'une RTC vaut mieux qu'un programme récupéré qui ne fonctionne pas trop.
De plus, une RTC a une sortie 1Hz pour faire clignoter les LED entre h et min.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

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

#50 Message par Temps-x » lun. 16 août 2021 00:50

Bonsoir tout le monde,

RETRAITE128 a écrit :Source du message Tempsx, avez-vous pu continuer sur le pourquoi du comment le lien ne fonctionne pas dans jens file ne fonctionne pas pour enclencher MPASM ?


Demain je vous mettrais un lien en téléchargement avec tout de paramétré, il faudra juste le décompresser sur le lecteur D:\

A propos du programme

Le mieux est de réécrire le programme ASM, je vais voir si j'ai 5 minutes pour le faire, puis ça seras amusant à faire, et ça mettra un peu d'entrain sur le forum :wink:

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


Retourner vers « Langage ASM »

Qui est en ligne

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