pic qui lis son programme une seule fois...
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

pic qui lis son programme une seule fois...



  1. #1
    Raphael2

    pic qui lis son programme une seule fois...


    ------

    Bonjour tout le monde, j'ai ecrit une partie d'un programme de façon a ce que le programme principal ne soit lu qu'une seule fois, pouvez vous me confirmer que normalement sa fonctionne ?
    merci





    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    bcf LED1 ; etteindre la led
    call PDelay ; attendre 300mS
    return ; fin du sousprog
    goto sousprog ; boucler

    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    clrwdt ; effacer watch dog
    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    END ; directive fin de programme

    -----

  2. #2
    Gérard

    Re : pic qui lis son programme une seule fois...

    Il n'y a pas d'initialisation.
    On ne sait pas de quel µC il s'agit.

    Si le début est :

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    bcf LED1 ; etteindre la led
    call PDelay ; attendre 300mS
    return ; fin du sousprog
    goto sousprog ; boucler

    Le prog se perd, il y a un return alors que "sousprog" n'a pas été appelé.
    Il n'y a pas de S/P PDelay

    Avec si peu d'infos, il fait être devin pour t'aider !

  3. #3
    Raphael2

    Re : pic qui lis son programme une seule fois...

    d'accord, merci alors le pic est un 16F628 je ne met pas l'initialisation parce que je sais qu'elle marche. J'ai corriger, c'est mieux ?
    merci encore

    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    clrwdt ; effacer watch dog
    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    END ; directive fin de programme

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    bcf LED1 ; etteindre la led
    call PDelay ; attendre 300mS
    goto sousprog ; boucler

  4. #4
    inviteaf3a73b7

    Re : pic qui lis son programme une seule fois...

    Citation Envoyé par Raphael2 Voir le message
    d'accord, merci alors le pic est un 16F628 je ne met pas l'initialisation parce que je sais qu'elle marche. J'ai corriger, c'est mieux ?
    merci encore

    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    clrwdt ; effacer watch dog
    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    END ; directive fin de programme

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    bcf LED1 ; etteindre la led
    call PDelay ; attendre 300mS
    goto sousprog ; boucler


    Bonjour,

    Je comprends pas bien ce que tu cherche à faire parce que quand tu appelle sousprog, tu a éteint ta led avant et ensuite sousprog boucle indéfiniment en voulant éteindre la led(qui l'est déja vu que ton programme principal l'a fait) toutes les 300ms.

    Tu boucle indéfiniment sans moyen de sortir de ta boucle. L'instruction END de ton programme principal ne sera donc jamais lue.

    Tu as un problème dans ton algorythme.

    Cordialement.

  5. A voir en vidéo sur Futura
  6. #5
    invitef26bdcba

    Re : pic qui lis son programme une seule fois...

    Salut,

    END n'est pas une instruction, mais bien une directive d'assemblage...

    Cela signifie que TOUT ce qui se trouve après la directive END n'est pas assemblé et est ignoré lors de l'assemblage du programme.

    David.

  7. #6
    inviteaf3a73b7

    Re : pic qui lis son programme une seule fois...

    Citation Envoyé par DavidDB Voir le message
    Salut,

    END n'est pas une instruction, mais bien une directive d'assemblage...

    Cela signifie que TOUT ce qui se trouve après la directive END n'est pas assemblé et est ignoré lors de l'assemblage du programme.

    David.
    Bonjour,

    Ha ouki merci je c'est pas ce que c'est comme langage ça, j'arrive a le lire mais je connais que le C,C++ personellement.

    N'empèche que son bouclage en sousprog j'en comprends pas trop l'intéret, le topic programe lu qu'une seule fois est pas clair, tant qu'il ne boucle pas dans son programme principal il ne sera lu qu'une seule fois.

    (enfin il me semble!)

    Cordialement.

  8. #7
    Gérard

    Re : pic qui lis son programme une seule fois...

    Citation Envoyé par Raphael2 Voir le message
    d'accord, merci alors le pic est un 16F628 je ne met pas l'initialisation parce que je sais qu'elle marche. J'ai corriger, c'est mieux ?
    merci encore

    ....
    Tu fais ce que tu veux, mais sans initialisation, tu n'iras pas loin.
    Il faut définir les I/O. (TRISA et TRISB)
    Si tu ne veux pas de comparateurs ana, il faut écrire CMCON = 7.

    Sans compter les autres erreurs qui t'on été signalées.

    Et si tu pouvais corriger les fautes de français ...merci.

  9. #8
    katmai

    Re : pic qui lis son programme une seule fois...

    Salut,

    Je pense que tu devrais effacer le watch dog dans t'as boucle si tu l'as activé.

    A++

  10. #9
    Raphael2

    Merci pour votre aide.
    En fait je voudrais que, quand je branche le PIC, il allume la led 900ms puis l’éteint et ne la rallume jamais... (Le pic ne fait rien d’autre que cela)
    En fait : faire une boucle sans fin, c’est pour cela que le sous programme boucle tout le temps et ne fait rien de spécial.

    Mais je ne sais pas si ça fonctionne comme ça… ?

    J’ai déjà défini les I/O et tout ce qui est initialisation, je vous montre juste la partie qui me pose problème.
    je vous remercie

    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    clrwdt ; effacer watch dog
    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    call PDelay ; attendre 300mS
    goto sousprog ; boucler

    END ; directive fin de programme

  11. #10
    katmai

    Re : pic qui lis son programme une seule fois...

    LuT,

    Je crois que si tu as activé le Watch Dog et que ton PIC reste dans "sousprog" il fera un reset interne car tu ne l'effaces pas, il faut que tu rajoutes "clrwdt" dans ton sous programme pour ne pas que le PIC redémarre. Par contre si tu ne l'as pas activé il n'y as pas de problème mais je vois pas l'intérêt du "clrwdt" dans la procédure "start"

    A++

  12. #11
    Gérard

    Re : pic qui lis son programme une seule fois...

    debut
    Code:
    led = 1
    call tmp300ms
    call tmp300ms
    call tmp300ms
    led = 0
    ici
    Code:
    nop
    goto ici
    ne pas oublier d'écrire le S/P tmp300ms

  13. #12
    Raphael2

    Re : pic qui lis son programme une seule fois...

    merci Katmai, d'accord je ne mets pas en marche le watch dog, j'ai corrigé :
    par contre Gérard, je ne vois pas trop ce que tu veux dire...
    je vous remercie

    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    call PDelay ; attendre 300mS
    goto sousprog ; boucler

    END ; directive fin de programme

  14. #13
    inviteaf3a73b7

    Re : pic qui lis son programme une seule fois...

    Citation Envoyé par Raphael2 Voir le message
    merci Katmai, d'accord je ne mets pas en marche le watch dog, j'ai corrigé :
    par contre Gérard, je ne vois pas trop ce que tu veux dire...
    je vous remercie

    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    call PDelay ; attendre 300mS
    goto sousprog ; boucler

    END ; directive fin de programme
    Bonjour,

    Gérard te dit de ne pas oublier d'ecrire le Sous Programme "PDelay" que tu appelle pour faire ta temporisation de 300ms .... => call PDelay ; attendre 300ms ... on n'as toujours pas vu dans ton programme où est cette fameuse routine PDelay ...

    Cordialement.

  15. #14
    Raphael2

    Re : pic qui lis son programme une seule fois...

    merci, ok
    alors la routine est la : (faite avec picdel)
    merci

    ;***************************** ****************************** ******************
    ; ROUTINE DE TEMPORISATION *
    ;***************************** ****************************** ******************
    ;-------------------------------------------------------------
    ; Code generated by PDEL ver 1.0 on 11/06/2007 at 00:00:00
    ; Description: Waits 300000 cycles
    ;-------------------------------------------------------------
    PDelay movlw .154 ; 1 set number of repetitions (B)
    movwf PDel0 ; 1 |
    PLoop1 movlw .243 ; 1 set number of repetitions (A)
    movwf PDel1 ; 1 |
    PLoop2 clrwdt ; 1 clear watchdog
    PDelL1 goto PDelL2 ; 2 cycles delay
    PDelL2 goto PDelL3 ; 2 cycles delay
    PDelL3
    decfsz PDel1, 1 ; 1 + (1) is the time over? (A)
    goto PLoop2 ; 2 no, loop
    decfsz PDel0, 1 ; 1 + (1) is the time over? (B)
    goto PLoop1 ; 2 no, loop
    PDelL4 goto PDelL5 ; 2 cycles delay
    PDelL5 clrwdt ; 1 cycle delay
    return ; 2+2 Done
    ;-------------------------------------------------------------

  16. #15
    Gérard

    Re : pic qui lis son programme une seule fois...

    Citation Envoyé par Raphael2 Voir le message
    merci Katmai, d'accord je ne mets pas en marche le watch dog, j'ai corrigé :
    par contre Gérard, je ne vois pas trop ce que tu veux dire...
    je vous remercie
    Je n'ai pas de mots plus simples que ce que j'ai écrit dans mon post.

    Citation Envoyé par Raphael2 Voir le message
    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************

    start

    bsf LED1 ; allumer la led
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    call PDelay ; attendre 300mS
    bcf LED1 ; etteindre la led
    call sousprog

    ;***************************** ****************************** ******************
    ; sousprog *
    ;***************************** ****************************** ******************
    sousprog

    call PDelay ; attendre 300mS
    goto sousprog ; boucler

    END ; directive fin de programme
    Ce prog DOIT marcher.
    S'il y a un soucis, c'est ailleurs dans ce que tu n'as pas posté.
    Quel est ton mot de config ?
    Quelle est l'initialisation ?

    Quelle est l'utilité d'un prog qui allume une LED pendant 900ms puis ne fait rien jusqu'à une remise sous tension ?

  17. #16
    Raphael2

    Re : pic qui lis son programme une seule fois...

    ok, merci Gérard, je vais voir si sa marche!
    bonne journée et encore merci
    a+

  18. #17
    katmai

    Re : pic qui lis son programme une seule fois...

    Lut,
    Si ça marche pas au pire tu peux toujours essayer de débuguer avec MPLAB pour voir où c'est que ça bloque dans ton programme.

    A+

  19. #18
    Raphael2

    Re : pic qui lis son programme une seule fois...

    ok! merci
    A+

Discussions similaires

  1. fonction dérivable UNE SEULE FOIS dans R...
    Par invite92276dd8 dans le forum Mathématiques du supérieur
    Réponses: 14
    Dernier message: 24/11/2016, 16h49
  2. Réponses: 0
    Dernier message: 18/12/2006, 20h34
  3. Manger une seule fois par jour
    Par Garion dans le forum Maigrir sans régime, c'est possible
    Réponses: 2
    Dernier message: 08/11/2006, 22h27
  4. Chemins passant une seule fois à travers chaque carré
    Par invited927d23c dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 01/06/2006, 21h11
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...