programmation PIC (TIMER0)
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

programmation PIC (TIMER0)



  1. #1
    invite6a971ad3

    programmation PIC (TIMER0)


    ------

    Je suis en train de programmer un PIC16F877
    j'ai bcp essayé mais je n'ai pas arrivé à trover la solution.
    Mon problème est:
    j'ai la pin RD0 (entrée numérique) qui va prendre 1 pour une période x. Je veu que Timer0 calcule et enregistre la valeur de cette période dans l'EEPOM interne, et par la suite une LED alimenté par la PIN RB2 va étre allumé pendant cette période.
    Donc mon probleme est comment évaluer cette période et comment faire pour allumer cette diode LED durant cette priode.
    Aider moi SVP.................

    -----

  2. #2
    Gérard

    Re : programmation PIC (TIMER0)

    Citation Envoyé par houcemgo Voir le message
    Je suis en train de programmer un PIC16F877
    j'ai bcp essayé mais je n'ai pas arrivé à trover la solution.
    Mon problème est:
    j'ai la pin RD0 (entrée numérique) qui va prendre 1 pour une période x. Je veu que Timer0 calcule et enregistre la valeur de cette période dans l'EEPOM interne, et par la suite une LED alimenté par la PIN RB2 va étre allumé pendant cette période.
    Donc mon probleme est comment évaluer cette période et comment faire pour allumer cette diode LED durant cette priode.
    Aider moi SVP.................
    Bonjour,
    Pourquoi ne pas prendre RB0 ? Cette entrée peut générer une interruption.
    Le Timer ne calcule pas, il compte.
    C'est à toi de le démarrer (par ex quand RB0 change d'état et l'arrêter au changement suivant). Le contenu du compteur (si pas de dépassement, TMR0 est limité à 255 sans prédiviseur) sera représentatif de la durée qui t'intéresse.
    La fréquence du Qz joue aussi un rôle, c'est elle qui fait avancer le TMR0.


    Quelle est la durée max que tu veux mesurer ?
    Quelle est la fréquence du quartz ?

    Pour l'enregistrement en EEPROM, on verra plus tard.

  3. #3
    invite6a971ad3

    Re : programmation PIC (TIMER0)

    Merci bcp Gérard,
    En effet je veux que mon µC mesure une durée pour laquelle un signal numérique soit égale à 1(c à d tant que par exemple RD0 vaut 1 le timer0 incrémente le nombre des cycles d'horloges). Une fois RD0 passe à 0 le comptage se termine et la période mesurée va étre utilisée (durant laquellela diode LED sur la pir RB2 va etre allumée)
    Mon oscillateur interne est 8MHz et mon quartz est 20MHz.
    la période maximale est 40 s.

    SVP je veux une aide au niveau du code en C ou en assembleur. MERCI

  4. #4
    freepicbasic

    Re : programmation PIC (TIMER0)

    routine d'interruption RB0 et TIMER0 qui mesure un pulse.


    Code:
    INTERRUPT:
    
    asm {
    movwf w_temp ; sauver registre W
    swapf STATUS,w ; swap status avec résultat dans w
    movwf status_temp ; sauver status swappé
    movf FSR , w ; charger FSR
    movwf FSR_temp ; sauvegarder FSR
    movf PCLATH, w ; charger PCLATH
    movwf PCLATH_temp ; sauvegarder PCLATH
    clrf PCLATH ; passer en Page 0
    
    
    btfss INTCON,T0IF
    GOTO intsw0
    movlw 0
    movwf TMR0
    bcf INTCON,T0IF
    
    ; Interruption réception RB0
    ; - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    intsw0
    btfss INTCON,INTF
    GOTO restorereg
    bcf INTCON,INTF
    
    bsf STATUS,rp0
    btfsc OPTION_REG,INTEDG ; front montant
    goto UPFront
    bsf OPTION_REG,INTEDG ; front montant
    bcf STATUS,rp0
    Movf TMR0,w
    Movwf Pulse
    goto NextFront
    UPFront
    bcf OPTION_REG,INTEDG ; front descendant
    bcf STATUS,rp0
    NextFront
    Movlw 0
    movwf TMR0
    
    restorereg
    movf PCLATH_temp, w ; charger PCLATH sauvé
    movwf PCLATH ; restaurer PCLATH
    movf FSR_temp , w ; charger FSR sauvé
    movwf FSR ; restaurer FSR
    swapf status_temp,w ; swap ancien status, résultat dans w
    movwf STATUS ; restaurer status
    swapf w_temp,f ; Inversion L et H de l'ancien W
    ; sans modifier Z
    swapf w_temp,w ; Réinversion de L et H dans W
    ; W restauré sans modifier status
    retfie ; return from interrupt
    }
    A+, pat

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

    Re : programmation PIC (TIMER0)

    Merci pour le code freepicbasic A+

Discussions similaires

  1. erreur 0X00 programmation PIC plus questions sur les PIC
    Par invite4a8ccabd dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 14h36
  2. programmation de pic en C
    Par invite81170861 dans le forum Électronique
    Réponses: 5
    Dernier message: 22/05/2007, 15h16
  3. Programmation Pic
    Par invite3341af8e dans le forum Électronique
    Réponses: 4
    Dernier message: 06/01/2007, 20h59
  4. PIC 16f876 et son Timer0 ...
    Par invite0e36b18a dans le forum Électronique
    Réponses: 1
    Dernier message: 03/04/2006, 23h24
  5. pb programmation pic
    Par invite8860b0b3 dans le forum Électronique
    Réponses: 4
    Dernier message: 01/12/2005, 18h01
Découvrez nos comparatifs produits sur l'informatique et les technologies.