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

Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

  1. #1
    ragedBOYS

    Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Salut,

    Dans le but de réaliser une horloge je veut configurer le time1 pic16f877 avec une interruption de fréquence 1HZ ou bien 1MHZ exact avec précision totale
    pour éviter le décalage horraire aprés un certain temps.....
    ****Etape1: JE veut générer un signal carré de fréquence 1HZ ou bien 1MHZ

    ==> le Probléme c'est que l'écriture dans les deux registres TMR1H et TMR1L ne s'établit pas pour tant j'écrit
    les valeur 0xFF et 0xFB

    le quartz est de 20MHz, le prédiviseur à 1 et le TMR1 à FFFB, il va falloir passer 5 fois
    pour provoquer une interruption, soit une fréquence de Q/4/5 = 1 MHz ou 1 μs

    Mais ca ne se asse pas :/





    /***********************Code mikroC************************ ************/
    int compt=0 ;


    void interrupt(){
    if (TMR1IF_bit == 1){ //no need to check if this is the only interrupt


    TMR1H = 0xFF;
    TMR1L = 0xFB;
    compt++;

    if(compt == 1) //
    {


    PORTD = ~ PORTD ;
    compt = 0 ;
    } //Invert PORTD to show interrupt occured

    TMR1IF_bit = 0; //flag must be cleared
    }
    }

    void main() {
    PORTD = 0;
    TRISD = 0;


    TMR1CS_bit = 0;
    T1CKPS1_bit = 0; //
    T1CKPS0_bit = 0; //Prescaler 1:4
    T1OSCEN_bit=1;
    T1SYNC_bit=1;
    // TMR1H = 0xFF;
    // TMR1L = 0xFB;
    GIE_bit = 1; //Enable global interrupts
    PEIE_bit = 1;
    TMR1IE_bit = 1; //Enable timer1 interrupt
    TMR1IF_bit = 0;
    TMR1ON_bit = 1; //Start Timer1
    while (1);

    }

    -----


  2. Publicité
  3. #2
    grosmatou75001

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Heu franchement, sans connaître les PIC, une interruption à 1MHz le pauvre PIC n'aura plus le temps de faire autre chose... Pour une horloge et d'autres bricoles genre debouncing (en français?) d'entrées 1kHz c'est suffisant.

  4. #3
    paulfjujo

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    bonsoir,

    Tu oublies le temps de réponse de l'interruption
    branchement
    execution et retour ...

    en plus avec du C !
    regarde le code asm devellopé par le compilateur
    et compte le nombre d'instructions utilisées par l'interrupt ..
    et si en plus il y a sauvegarde et restitution du contexte !

    Avec Q=20Mhz le cycle de base (FOSC/4) corrspondrait à 5Mhz

    1MHz
    tu ne pourrais y arriver qu'en asm 100% , dans une boucle infinie
    modifiant une sortie
    mais il ne fera rien d'autre !
    Dernière modification par paulfjujo ; 24/09/2013 à 19h29.

  5. #4
    r4ph

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Salut,

    je sais pas quelle genre d'horloge tu veux fabriquer ni si tu a vraiment besoin d'une fréquence aussi élevée, mais va jeter un oeil ici: http://www.romanblack.com/one_sec.htm

    Ca pourrait peut-être t'aider...

  6. #5
    RISC

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Salut,

    Il y a une solution très simple : tu utilises un quartz 32768 Hz pour le TIMER1 (oscillateur secondaire)
    En mettant 0x8000 dans PR1 tu auras une interruption toutes les secondes ET pour éviter toute imprécision, l'astuce consiste à ne recharger QUE la partie haute du timer1 0x80. De cette manière aucune erreur car la partie basse continue de s'incrémenter ;=)

    Pour l'oscillateur principal, sauf si tu as besoin de précision, tu peux utiliser l'oscillateur interne

    a+
    Ma marotte ? les microcontrôleurs ;=)

  7. #6
    ftorama

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Si la précision totale était possible avec un bête quartz, on n'aurait pas mis en place de système de synchro radio basés sur des horloges atomiques.

    Renseigne-toi sur le DCF77 ou sur la synchro "France Inter": http://www.datelec.fr/signaux_horaires/p0.htm

    L'article est ancien mais il expose les bases.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  8. #7
    paulfjujo

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    bonjour,

    Tu n'as toujours pas donné le besoin de precision attendu..
    sinon il y a ceci
    module Tiny RTC 2560 UNO R3 DS1307 avec pile .. à moins de 5 euros (pile fournie!)
    mais il faut commander d'autres choses en meme temps pour amortir le port (+ frais de douane)
    il sortira 1Hz sur sa broche SQWout.
    et le PIC n'aura qu'à l'initialiser ..
    et eventuellement recuperer la date et heure

    sinon pour info, sortir 1Mhz sur la pin RA4 , avec un PIC cadencé à FOSC=20Mhz
    en C18
    signal ON pendant 40% et OFF pendant 60%
    mesuré au frequencemetre (a PIC) 1000008 Hz

    Code:
    // TRISA = 0b00001111 ; 
    TRISAbits.RA4=0;
    LATA = 0x00;
    while(1)
    { 
        _asm
         ici:
         bsf LATA,4,0
         nop
         bcf LATA,4,0
         bra ici
        _endasm
     }

  9. #8
    louloute/Qc

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Un quartz monté avec un oscillateur chiadé atteint au mieux 50 à 100ppm en exactitude de fréquence à 25°C ; côté stabilité en température et à long terme, c’est bien pire et le Pierce de ton PIC ne fait pas mieux.

    Si tu veux un peu de précision, achète un oscillateur tout fait. Pour $14, tu te paies du 1ppm (10Hz d’erreur pour un 10MHz soit 1s d’erreur pour 11 jours)

    http://www.conwin.com/datasheets/tx/tx356.pdf

    le Pic te fera un bon diviseur derrière.
    Dernière modification par louloute/Qc ; 28/09/2013 à 14h32.
    男人不坏,女人不爱

  10. #9
    ragedBOYS

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Merci RISC c'est ce que je recherche
    Mais j'essayer de faire la simulation sur isis et mikroC ca n'a pas marché est-ce-qu'il y a des contrainte lors de l'utilisation du Quartz avec Timer1.

    /////////////////////////////////****************************** *************************//////////////////////////////
    void interrupt(){

    if (TMR1IF_bit == 1)
    {


    PORTD = ~ PORTD ;

    TMR1IF_bit = 0; //flag must be cleared

    }
    }



    void main() {
    PORTD = 0;
    TRISD = 0;

    TRISB=0;
    PORTB=0;

    TRISA=0;
    PORTA=0xff;
    TRISE=0;
    PORTE=0xff;

    TMR1CS_bit = 1;
    T1CKPS1_bit = 0; //
    T1CKPS0_bit = 0; //Prescaler 1:4
    T1OSCEN_bit=1;
    T1SYNC_bit=1; //synchroniser

    GIE_bit = 1; //Enable global interrupts
    PEIE_bit = 1;
    TMR1IE_bit = 1; //Enable timer1 interrupt
    TMR1IF_bit = 0;
    TMR1ON_bit = 1; //Start Timer1
    while (1);
    { PORTA=0;
    delay_ms(1000);
    PORTA=0xff ; }

    }

    le pic ne marche plus il n'exécute méme pas le boucle infinie
    forum1.png
    forum2.jpg
    EST ce que le probléme est au niveau de la configuration ou bien niveau Code !!??

  11. #10
    RISC

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Salut,

    Ce que j'ai indiqué dans mon message précédent DOIT être fait dans l'interruption (TMR1H et TMR1L)...
    Si j'étais toi je ferai clignoter une led à chaque fos que je passe dans l'interruption (normalement chaque seconde) et une autre led dans le programe principal

    Tu as oublié d'initialiser le TIMER1 dans ton main()...TMR1H et TMR1L
    Le prescaler doit être mis à 1:1 si tu mets 0x8000 dans TMR1H et TMR1L (0x8000 = 32768 ;=)

    a+
    Ma marotte ? les microcontrôleurs ;=)

  12. #11
    ragedBOYS

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    oui pour 1ére étape je veut avoir 2 secondes exact je doute que le quartz 32.768HZ ne fonctionne as au niveau Isis !!?

  13. #12
    HULK28

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Bonsoir,

    si tu veux apprendre à te servir de µC évite de perdre ton temps avec des simulateurs dont tu ne peux avoir confiance tant ils sont buggés
    L'électronique s'apprend avec sa tête, en commencant par lire la datasheet, et avec une réalisation concrète sous les yeux que tu auras assemblé toi même par la suite, une calculatrice et un oscilloscope seront tes plus fidèles alliés.
    Le reste, comme isis ou autres avatars, c'est de la daube en barre qui ne t'apprendra rien.
    La preuve: toutes tes questions prouvent que tu n'as pas lu la doc, ce qui est fondamental et incontournable dans ce métier.
    "Le temps met tout en lumière." Thalès

  14. #13
    inoxxam

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Citation Envoyé par RISC Voir le message
    0x8000 = 32768 ;=)
    Pour être précis, ce qui nous intéresse ici c'est 0xFFFF-0x8000+1 = 0x8000 = 32768, car les Timers des PIC sont des compteurs et non des "décompteurs".

  15. #14
    RISC

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Salut,

    Citation Envoyé par inoxxam Voir le message
    Pour être précis, ce qui nous intéresse ici c'est 0xFFFF-0x8000+1 = 0x8000 = 32768, car les Timers des PIC sont des compteurs et non des "décompteurs".
    Lis bien mon post...je n'ai jamais parlé de décompteur... 0x8000 = 32768 = 65536 - 32768 ;=)

    Perso je fais toujours 0x10000 - valeur ce qui revient au même que 0xFFFF - valeur + 1, c'est moins prise de tête

    a+
    Ma marotte ? les microcontrôleurs ;=)

  16. #15
    inoxxam

    Re : Probléme de configuration pic16f877 avec Timer 1Hz ou 1 MHZ exacte pour réaliser une Horloge

    Tout a fait, ce n'était pas par pur esprit de contradiction, mais juste pour bien expliciter le pourquoi du comment.

Discussions similaires

  1. horloge avec timer 1 du pic 18F4550
    Par saraviva dans le forum Électronique
    Réponses: 4
    Dernier message: 13/05/2013, 23h41
  2. Aide pour réaliser une horloge
    Par jejesg dans le forum Électronique
    Réponses: 8
    Dernier message: 01/01/2013, 12h55
  3. Problème configuration Horloge interne P18F4520
    Par armand25 dans le forum Électronique
    Réponses: 1
    Dernier message: 08/02/2012, 22h13
  4. Problème configuration horloge interne PIC
    Par Temp22 dans le forum Électronique
    Réponses: 7
    Dernier message: 12/05/2010, 07h17
  5. réaliser une balance electronique avec le 5460a et pic16f877
    Par redtronic dans le forum Électronique
    Réponses: 29
    Dernier message: 28/01/2010, 09h53