Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Saut de page sur 16F877



  1. #1
    LouR56

    Saut de page sur 16F877


    ------

    Salut à tous, je viens d'écrire un programme destiné à un PIC 16F877, après assemblage, MPASMWIN m'indique 2161 lignes de code assemblées. Il ne m'a indiqué aucun WARNING de saut de page, est-ce normal ? as-t-il pris en compte les saut inter page ? mon programme va-t-il fonctionner correctement? (je n'ai pas encore les moyens de le tester puisque la platine n'est pas faite)
    ou dois-je tuffer mon programme de "pagesel xxx" ?
    Merci
    Louis

    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    Bigonoff

    Re : Saut de page sur 16F877

    Salut
    -----

    Ce n'est pas parce que le programme est plus long qu'une page qu'il y a des sauts inter-pages.

    Pour qu'il y ait un saut inter-page, il faut qu'il y ait un "goto" ou un "call" dans une page, dont la destination se trouve dans une autre page.

    Par contre, le fait pour le programme de passer d'une page à l'autre ne nécessite pas d'agir spécifiquement.

    Par exemple :

    xxx
    xxx
    goto adresse 1
    xxx
    --------- limite de page
    xxx
    xxx
    adresse 1:

    Dans ce cas, le goto se trouve dans une page, et l'adresse1 dans une autre page.
    On aura un warning, et il faudra utiliser les directives prévues.

    Par contre ;

    xxx
    xxx
    goto adresse 1
    xxx
    xxx
    adresse1 :
    xxx
    xxx
    ----------- limite de page
    xxx
    xxx
    xx
    goto adresse 2
    xxxx
    xxx
    adresse 2:
    xxx
    xx

    Dans ce cas, aucun saut d'une page à l'autre, malgré que le programme soit sur 2 pages. Donc, aucun warning et aucune opération spécifique à effectuer.

    Tu ne dois mettre des directives explicites QUE pour les lignes que MPASM t'indique. Pour le reste, c'est inutile.

    Tu peux avoir plus d'infos sur les pages, si tu le désires, dans mon cours-part2 disponible sur mon site

    A+
    Bigonoff
    Vive l'Internet libre

  5. #3
    LouR56

    Re : Saut de page sur 16F877

    Merci Bigonoff, (je me suis servi de ton "GOTOX" pour les saut interpages), il est survenu un 2ème problème: dans les dernières lignes du code, je fait ceci:

    movf heures,w ; heures = 0 ?
    xorlw D'0'
    btfss STATUS,Z
    GOTOX gestion_TMR2_3 ; non, alors on saute
    movf minutes,w ; minutes = 0 ?
    xorlw D'0'
    btfss STATUS,Z
    GOTOX gestion_TMR2_3 ; non, alors on saute
    movf secondes,w ; secondes = 0 ?
    xorlw D'0'
    btfss STATUS,Z
    GOTOX gestion_TMR2_3 ; non, alors on saute
    GOTOX fin_gestion_TMR2 ; oui, temps = 0 traîter fin du
    ; décomptage

    Passé au simulateur, les variables "heures", "minutes" et "secondes" son bien égale à 0 mais qand je passe dans cette routine, je ressors directement de la routine et effectue un saut à l'étiquette "gestion_TMR2_3" systématiquement que les variables soient nulle ou pas (il s'agit d'un programme réalisant la fonction d'un minuteur donc si je ne peux pas savoir quand le temps est à 0, c'est pas pratique).

    Ce morceau de code est utilisé en début de programme et fonctionne très bien (il me sert à savoir si le temps saisi est nul) par contre à la fin, il y a comme un bug.
    Si qqn a une idée
    Louis

  6. #4
    Bigonoff

    Re : Saut de page sur 16F877

    Salut
    ------

    C'est normal, tu ne peux pas écrire :

    btfss xxx
    GOTOX

    car GOTOX est une macro, pas une instruction. Le btfss saute l'instruction suivante, et pas le groupe d'instruction de la macro, il ne saute donc que la première ligne de la macro, ce qui fait que plus rien ne fonctionne.

    C'est spécifiquement expliqué en détails dans le cours-part2, pages37 et 38. La bonne méthode à utiliser y est également explicitement détaillée, via deux autres macros, PCLAX et GOTOSX.

    A+
    Bigonoff
    Vive l'Internet libre

  7. A voir en vidéo sur Futura

Discussions similaires

  1. Supprimer une en-tête ou pied de page sur la 1ère page d'un document word
    Par mimi1255 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 18/12/2008, 21h27
  2. Port serie sur 16F877 avec CCS
    Par joseph4008 dans le forum Électronique
    Réponses: 7
    Dernier message: 12/07/2006, 18h56
  3. branchement pt100 sur 16F877
    Par alpair dans le forum Électronique
    Réponses: 7
    Dernier message: 26/01/2005, 21h56
  4. Re : page web + page de demarrage intempestives + problems
    Par ickis dans le forum Internet - Réseau - Sécurité générale
    Réponses: 13
    Dernier message: 25/03/2004, 20h01
  5. Question sur la mise en place de liens sur page web
    Par dada180 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 20/12/2003, 11h42
Découvrez nos comparatifs produits sur l'informatique et les technologies.