IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

problème de configuration oscillateur, timer


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    mécatronique
    Inscrit en
    Septembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : mécatronique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 23
    Points : 16
    Points
    16
    Par défaut problème de configuration oscillateur, timer
    bonjour, voila j'ai configurer un timer et un oscillateur sur un pic32 afin de gérer le temps.
    Je suis sur un pic32

    Mon soucis est que j'ai un facteur 10 entre ma config et ce que j'ai en réel, et je ne trouve pas d'ou cela peut venir

    voila ma config:
    j'utilise un quartz a 8Mhz

    config de l'oscillateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /*quartz = 8Mhz*/
    #pragma config POSCMOD = HS //High speed crystal
    #pragma config FNOSC = PRIPLL //on utilise l'oscillateur principale avec les pll
    #pragma config FPLLIDIV = DIV_2//on passe de 8Mhz à 4Mhz
    #pragma config FPLLMUL = MUL_20 // on passe de 4Mhz à 80Mhz
    #pragma config FPLLODIV = DIV_1//on reste a 80Mhz
    #pragma config FWDTEN = OFF // on désactive le watchdog
    #pragma config FPBDIV = DIV_8 // PBCLK=SYSCLK/8

    config de mon timer pour faire clignoter une led a un inversement d'état toutes les 1s
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define init_TIMER3()                                   
                                                            T3CON=0x00000000;\
    							T3CONbits.TGATE = 0;\
    							T3CONbits.TCKPS = 0b111;\ -> prescaler de 256
    							TMR3 = 0x00;\
    							PR3 = 39063;\

    Donc a 10Mhz, fréquence du PBCLK je devrait déclencher une interruption toute les secondes or j'en déclenche une toutes les 10
    où pourrait être mon erreur? personnellement je pense que je ne suis pas à 10MHZ sur mon PBCLK mais je ne sais pas pourquoi et je n'ai pas de moyen de le vérifier.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    As-tu essayé avec une autre source pour l'horloge ? Si en utilisant le cristal interne, tu as un problème similaire, alors ton soucis vient de la configuration du timer. Sinon, c'est que tu "configures mal ton quartz externe".

    Sur certains micro, il est possible de faire sortie l'horloge sur une pin. Cela permet de regarder à l'oscilloscope à quoi elle ressemble. Tu peux regarder si tu as une telle fonction sur ton PIC.

    Une macro d'init c'est pas très beau. Une fonction serait plus élégant.

  3. #3
    Membre à l'essai
    Homme Profil pro
    mécatronique
    Inscrit en
    Septembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : mécatronique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    j'ai essayé de mettre l'horloge en direct c'est a dire de ne pas passer par les multiplication pll, donc dans ce cas là j'ai un SYSCLK=8Mhz, je n'ai pas mis de division sur le PBCLK et dans ce cas j'arrive bien a avoir ce que je veut avec mon timer.
    Dès que je mets en place les PLL j'ai n'importe quoi.
    De plus j'ai regardé pour mettre en sortie le SYSCLK mais je n'ai pas trouvé sur la datasheet du PIC32 ni sur le net :/


    EDIT: Donc, j'ai essayé d'utiliser le FRC Oscillator, oscillateur interne de 8Mhz, donc la sa marche plutôt lorsque je le couple au pll à part une précision pas top mais sa c'est normal pour un oscillateur interne.
    donc je ne comprend pas pourquoi il ne fonctionne pas en oscillateur externe....

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Malheureusement, je ne pourrais pas t'apporter plus d'aide. : /

Discussions similaires

  1. [Install]Problème de configuration d'éclipse
    Par Jean Claude90 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 26/02/2005, 17h33
  2. [Log4j]petit problème de configuration
    Par mikey_ufc dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 09/01/2005, 23h32
  3. [Tomcat 5 + Eclipse] Problème de configuration
    Par seb55555 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 26/10/2004, 15h20
  4. [EJB] Problème avec configuration jonas
    Par SteelBox dans le forum JBuilder
    Réponses: 30
    Dernier message: 11/03/2004, 21h30
  5. Problème de configuration
    Par lsdInside dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/10/2003, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo