Probleme de PWM avec 16f873
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Probleme de PWM avec 16f873



  1. #1
    synapsium

    Probleme de PWM avec 16f873


    ------

    Bonjour à tous,
    je cherche actuellement à produire un signal PWM qui puisse contrôler un servomoteur. Pour cela j'utilise un µC 16f873 et travail avec le module CCP.
    Je programme en C via CCS.
    Au début je me suis rendu compte que le quartz de 20Mhz ne pouvais pas produire d'interruption de moins de 20ms (période maximum pour le signal du servo), je me suis donc rabattu sur 4Mhz avec pour paramètre du timer2 un PRD=16, PR2=249 et PSD=1 ce qui me donne une période de 4ms.
    Ensuite si je charge CCP1 avec une valeur de 1 à 249 je modifie le duty cycle par pas de 16µs.
    Mais au final je n'obtient rien de correct.
    Est-ce que ce bout de code semble bon???

    #include <16f873a.h>
    #device adc=8
    #use delay(clock=4000000)
    #fuses NOWDT,XT,PUT,NOPROTECT,BROWNOU T,LVP,NOCPD,NOWRT,NODEBUG
    int val=1;
    void main()
    {
    setup_timer_2(T2_DIV_BY_16,249 ,1);
    setup_CCP1(CCP_PWM);
    while(val<=250)
    {
    val=val+1;
    CCP_1=val;
    delay_ms(500);

    }

    }


    Merci d'avance de votre aide

    -----

  2. #2
    invite03481543

    Re : Probleme de PWM avec 16f873

    Salut,

    une commande de servo avec des temps variables entre 1ms et 2ms est plus simple en utilisant les interruptions.
    Il ne faut pas utiliser le PWM mais le timer1 par exemple avec le module CCP1 en mode comparaison.
    Tu fixes la période à 20ms par PR1 et tu charges dans CCP1 la durée d'impulsion voulue, ensuite tu détectes le flag CCP1IF qui passera à 1 lorsque une occurence interviendra entre le contenu de TMR1 et <CCPR1H:CCPR1L>, dès lors que les bits CCP1M3:CCP1M0 = 1010 du registre CCP1CON ont été positionnés au préalable.

  3. #3
    synapsium

    Re : Probleme de PWM avec 16f873

    Salut,

    j'avais bien entendu cette solution en tête mais je pensais pouvoir utiliser au mieux la capacité PWM du pic. Je vais utiliser cette méthode qui sera plus rapide mais je ne laisse pas tomber l'autre méthode qui doit être exploitable.
    Bon dimanche à tous.

Discussions similaires

  1. Problème de PWM avec L298
    Par invite33fac129 dans le forum Électronique
    Réponses: 4
    Dernier message: 16/12/2007, 18h44
  2. clignoter une led avec pic 16F873
    Par invite0ff982b6 dans le forum Électronique
    Réponses: 5
    Dernier message: 26/05/2007, 12h25
  3. probleme avec PWM et NE555
    Par invite5f12e21b dans le forum Électronique
    Réponses: 5
    Dernier message: 22/08/2006, 09h25
  4. Problème pic 16f873
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 10
    Dernier message: 29/03/2006, 08h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...