synchronisation fréquence
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

synchronisation fréquence



  1. #1
    stross

    synchronisation fréquence


    ------

    Bonjour,

    Je programme sur mikroC Pro et je rencontre un problème avec ma carte électronique dspic33fj256gp710a.

    On rentre une fréquence de référence dans mikroC Pro qui correspond à celle de notre carte électronique. Or lorsque l'on rentre une fréquence en PWM_init, nous n'obtenons pas celle que l'on devrait obtenir. Au début, on a tenté de trouver une relation de proportionnalité entre les différentes fréquences, qui diffèrent, pour finalement arriver à la bonne, mais il n'y en a pas. On vérifie cela grâce à un oscilloscope.

    Le problème est un peu difficile à expliquer, j'espère que vous voyez le problème que je rencontre ?


    Merci d'avance tout le monde

    -----

  2. #2
    f6bes

    Re : synchronisation fréquence

    Bjr à toi,
    "...je programme sur etc...etc..."
    Peut etre que SI le listing du programme était "visible", pourrait y avoir une explication !
    On ne sait ce que tu as " écrit" ??

    Bonne journée

  3. #3
    stross

    Re : synchronisation fréquence

    Salut !

    J'avoue que sans le code, c'est moins compréhensible. Le principe est le suivant: Lorsque l'on appuie sur le bouton poussoir, la fréquence augmente jusqu'à revenir à zéro lorsqu'elle dépasse un certains seuil. Or, pour commencer "pwm_period1 = PWM_Init(5000 , 1, 1, 2);", on obtient la fréquence de 5000Hz. Le problème c'est que l'on veut une fréquence de 50Hz, or lorsque l'on met "pwm_period1 = PWM_Init(50 , 1, 1, 2);" on obtient pas la fréquence souhaitée....

    voici le code:

    Code:
    unsigned int current_duty, old_duty, current_duty1, old_duty1;
    unsigned int pwm_period1, pwm_period2;
    
    void InitMain() {
        // PLL settings
      CLKDIVbits.PLLPRE = 0;      // PLLPRE<4:0> = 0  ->  N1 = 2    8MHz / 2 = 4MHz
                                  // (must be within 0.8 MHz to 8 MHz range)
      PLLFBD =   38;              // PLLDIV<8:0> = 38 ->  M = 40    4MHz * 40 = 160MHz
                                  // (must be within 100 MHz to 200 MHz range)
      CLKDIVbits.PLLPOST = 0;     // PLLPOST<1:0> = 0 ->  N2 = 2    160MHz / 2 = 80MHz
                                  // (must be within 12.5 MHz to 80 MHz range)
    
      ADPCFG = 0xFFFF;                           // configure AN pins as digital I/O
      TRISA = 0xFFFF;                            // configure PORTA pins as input
      PORTD = 0;                                 // set PORTD to 0
      TRISD = 0;                                 // designate PORTD pins as output
    }
    
    void main() {
      InitMain();
      current_duty  = 16;                        // initial value for current_duty
    
      pwm_period1 = PWM_Init(5000 , 1, 1, 2);
    
      PWM_Start(1);
    
      PWM_Set_Duty(current_duty,  1);            // set current duty for PWM1
    
      while (1) {                                // endless loop
        if (RA0_bit) {                           // button on RA0 pressed
          Delay_ms(20);
          current_duty++;                        // increment current_duty
          if (current_duty > pwm_period1) {      // if we increase current_duty greater then possible pwm_period1 value
            current_duty = 0;                    // reset current_duty value to zero
          }
          PWM_Set_Duty(current_duty,  1);        // set newly acquired duty ratio
         }
    
        if (RA1_bit) {                           // button on RA1 pressed
          Delay_ms(20);
          current_duty--;                        // decrement current_duty
          if (current_duty > pwm_period1) {      // if we decrease current_duty greater then possible pwm_period1 value (overflow)
            current_duty = pwm_period1;          // set current_duty to max possible value
          }
          PWM_Set_Duty(current_duty,  1);        // set newly acquired duty ratio
         }
    
        Delay_ms(5);                             // slow down change pace a little
      }
    }

    Merci d'avance

  4. #4
    f6bes

    Re : synchronisation fréquence

    Bjr à toi,
    C'est pas moi qui pourrait t'en dire qq chose !
    Mais en prendre connaissance, pourrait permettre à d'autres de te répondre.
    Bonne journée

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/03/2013, 22h21
  2. Réponses: 6
    Dernier message: 05/06/2012, 18h29
  3. Réponses: 4
    Dernier message: 23/12/2011, 10h51
  4. Aide pour Convertisseur Frequence->Tension+ Comparateur Fréquence
    Par invite6f46c7c8 dans le forum Électronique
    Réponses: 3
    Dernier message: 04/01/2010, 07h15
  5. synchronisation de 2 PC
    Par invitecf0d02ec dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 18/07/2005, 17h05
Découvrez nos comparatifs produits sur l'informatique et les technologies.