temporisation (PIC 16F84A)
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

temporisation (PIC 16F84A)



  1. #1
    narakphysics

    temporisation (PIC 16F84A)


    ------

    Bonjour à tous
    je désire écrire un programme qui réalise un compteur sur un afficheur avec une temporisation de 200 ms, sachant que le PIC est relié à un oscillateur qui délivre 4MHz (càd que notre PIC fonctionne à 1MHz).
    ma question est pour le programme de temporisation:
    j'ai essayé d'écrire une tempo de 1 ms alors si je veux 200ms , il faut juste l'appelé 200 fois!! mais je trouve pas les 200 ms!!
    voici le programme de 1ms:
    Code:
    tempo:
    movlw 0xF9
    movwf compt
    NOP
    boucle:
    NOP
    decfsz compt,1
    goto boucle
    return
    merci d'avance

    -----
    Dernière modification par narakphysics ; 28/12/2011 à 21h14.

  2. #2
    nornand

    Re : temporisation (PIC 16F84A)

    bsr
    200 en hexa = C8, et pas F9 , et il faut regarder combien de coup d'horloge pour faire la boucle , tu dois avoir une tempo beaucoup plus longue.

  3. #3
    narakphysics

    Re : temporisation (PIC 16F84A)

    merci pour votre réponse
    oui mais ce que j'ai écrit c'est seulement pour 1ms
    d'aprés mon programme: tempo=3+(1+1+2)248+(1+2)+2=100 0 cycle
    donc 1000cycle *1µs=1ms non??

  4. #4
    RISC

    Re : temporisation (PIC 16F84A)

    Salut,

    Une méthode rapide de mise au point des délais est d'utiliser le simulateur de MPLAB

    Tu te connectes en mode simulateur : Debugger > Select Tool > MPLAB SIM

    Tu actives le chronomètre : Debugger > Stopwatch
    Il faut aussi entre la fréquence Fosc : Debugger > Settings > Osc/Trace > 4 MHz


    Ensuite, tu mets un point d'arrêt sur la ligne qui appelle ta fonction délai (double clic) et aussi un point d'arrêt sur la ligne qui suit l'appel de la fonction délai.
    Il te suffit de faire Run. Le programme s'arrête une première fois. Tu fais de nouveau Run et il s'arrête une seconde fois.
    Il te sufit alors de lire le nombre de cycles dans la fenêtre "Output" que tu multiplies par Tcycle ( = 4 x Tosc)

    Si tu n'as pas le nombre de cycles attendu tu changes le nombre de boucles jusqu'à atteindre la valeur la plus proche ;=)

    a+
    Dernière modification par RISC ; 28/12/2011 à 22h06.

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

    Re : temporisation (PIC 16F84A)

    merci M RISC
    ça marche trés bien
    A votre avis qu'elle est la meilleur méthode pour obtenir n'importe quelle temporisation sans passé par MPLAB
    est ce qu'il suffit d'écrire une tempo de 1ms et à chaque fois on l'appel?? ou bien autre méthode?
    merci d'vance

  7. #6
    RISC

    Re : temporisation (PIC 16F84A)

    Salut,

    Regardes les cours de Bigonoff, il y a certaiement quelque chose à ce sujet.

    En langage C les choses sont plus simples (tu peux faire la même chose en assembleur) :

    Tu peux tout simplement utiliser les routines delay.h ou delays.h :

    http://www.edaboard.com/thread35213.html#post159417

    a+

  8. #7
    narakphysics

    Re : temporisation (PIC 16F84A)

    merci pour votre réponse
    une autre question:
    dans le datasheet du PIC 16F84A: sur les registres spéciaux de la RAM et plus précisément entre l'adresse 0x8C et 0xCF , Que signifie mapped acces in bank 0

  9. #8
    RISC

    Re : temporisation (PIC 16F84A)

    Salut,

    Télécharges les cours de Bigonoff. Il répond à ta question avec moults détails ;=)

    a+

  10. #9
    narakphysics

    Re : temporisation (PIC 16F84A)

    merci
    j'ai besoin d'un petit éclaircissement :
    la mémoire flash contient 1k "mots" de 14 bits dans le cas du PIC 16F84A et le compteur de programme (PC) contient 13 bits .
    Normalement avec 13 bits ,on peut adresser 8k!!
    Donc où sont les trois autres bits??est ce qu'ils sont réservés pour la pile (stack)??
    merci

  11. #10
    IABIO

    Re : temporisation (PIC 16F84A)

    comment peut-on calculer le temps d’exécution d'une fonction pour une fréquence de 4MHZ et voici les données:
    tempo_1
    MOVLW S
    MOVWF 0EH
    Boucle1 DECFSZ 0EH,1
    GOTO Boucle1
    RETURN

    Rq:S=[0,255]


    et merci!!

  12. #11
    IABIO

    Re : temporisation (PIC 16F84A)

    bsr !! l'organigramme de cette fonction !! please!!

  13. #12
    Gérard

    Re : temporisation (PIC 16F84A)

    Citation Envoyé par IABIO Voir le message
    comment peut-on calculer le temps d’exécution d'une fonction pour une fréquence de 4MHZ et voici les données:
    tempo_1
    MOVLW S
    MOVWF 0EH
    Boucle1 DECFSZ 0EH,1
    GOTO Boucle1
    RETURN

    Rq:S=[0,255]


    et merci!!
    Lire Bigonoff, c'est très bien expliqué.

Discussions similaires

  1. Pic 16f84a
    Par invitee8b146ef dans le forum Électronique
    Réponses: 28
    Dernier message: 08/04/2010, 21h05
  2. pic 16F84A
    Par invitee8b146ef dans le forum Électronique
    Réponses: 1
    Dernier message: 01/04/2010, 22h26
  3. pic 16f84a
    Par invite6523d53d dans le forum Électronique
    Réponses: 23
    Dernier message: 08/05/2009, 21h35
  4. Pic 16f84A
    Par invite29d9c8de dans le forum Électronique
    Réponses: 2
    Dernier message: 18/12/2006, 09h01
  5. pic 16f84A
    Par invite29d9c8de dans le forum Électronique
    Réponses: 3
    Dernier message: 27/11/2006, 19h15
Découvrez nos comparatifs produits sur l'informatique et les technologies.