[PIC18F] Module PWM - Language C
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

[PIC18F] Module PWM - Language C



  1. #1
    jorg1n

    [PIC18F] Module PWM - Language C


    ------

    Bonjour,

    me revoila, encore avec un nouveau sujet sur le PIC18F...(je teste un peu toute les fonctions de mon PIC) et là je mets en oeuvre le module PWM...
    J'utilise la librairie C18 qui permet de configurer simplement et rapidement ce module, et après mon premier test, ça marche super; voila mon code:
    Code:
    void main (void)
    {
    init_uc();				//Appel SP Initialisation du microcontroleur
    config_int();
    
    T2CON=0x05;				//Mise en fonctionnement du Timer 2
    
    while(1)
    {
    
    OpenPWM1(0x80);			//period(de x00 à xff -> PWM period=[(period)+1]x4xTOSCxTMR2 prescaler
    
    for(i=0;i<128;i++)
    {
    SetDCPWM1(i);			//i=Dutycycle->10-bit number<9:0> ->PWMdutycycle=(<9:0>)xTOSC
    Delay_ms(5);
    }
    for(i=127;i>0;i--)
    {
    SetDCPWM1(i);
    Delay_ms(5);
    }
    
    }//Fin While(1)
    }//Fin Programme Principal
    En sortie j'ai un signal à rapport cyclique variable de fréquence 9,690 KHz, et donc une tension continue variable...c'est marrant
    C'est bien, mais j'ai mis des valeurs au "PIF" pour les paramètres, et je n'arrive pas à faire la relation entre ce que j'ai mis et le signal de sortie...
    j'ai quand meme 2 formules:
    PWM period=[(period)+1]x4xTOSCxTMR2 prescaler
    Dutycycle->10-bit number<9:0> ->PWMdutycycle=(<9:0>)xTOSC

    Pour information, j'ai un quartz de 20Mhz, et le prescaler du timer2 est de 4..

    Si vous pouviez m'expliquer...
    merci d'avance
    Nicolas

    -----

  2. #2
    jorg1n

    Re : [PIC18F] Module PWM - Language C

    Bon, j'avance un peu...
    en ce qui concerne la fréquence, avec l'équation suivante:
    PWMperiod=[(period)+1]x4xTOSCxTMR2 prescaler
    period=(128+1)x4x1/20Mx4=1,032E-4
    donc F=1/period=9689Hz...BINGO
    et un de compris...
    je passe maintenant au rapport cyclique...

  3. #3
    jorg1n

    Re : [PIC18F] Module PWM - Language C

    Bon j'ai fais un test pour le rapport cyclique... j'ai mis l'instruction:
    Code:
    SetDCPWM1(100);
    et à l'oscilloscope, j'ai un signal avec un rapport cyclique de 31%..
    Donc avec l'équation:
    PWM x Dutycycle=(DCx<9:0>)xTOSC
    on a:
    DCx<9:0>=100
    Tosc=5x10^-8

    Donc PWM x Dutycycle=5x10^-6

    Je l'as je n'arrive pas à faire la fin...relation entre mon résultat et celui mesuré...???
    Si quelq'un à une idée, je suis preneur..
    merci d'avance
    Nicolas

  4. #4
    invite03481543

    Re : [PIC18F] Module PWM - Language C

    Salut,

    un conseil, n'utilise pas des fonctions toutes faites de ton compilateur telles que SetDCPWM1(100);

    C'est pratique certainement pour une simple appli mais lorsque tu vas développer des programmes plus sophistiqués avec 2 ou 3 timers tu ne comprendra pas pourquoi ton prog ne marche pas.

    Le soucis principal avec ces macros fonctions c'est qu'elles utilisent des interruptions dont tu ne maitrise pas les "flags" et lorsque tu vas avoir besoin de manipuler ces interruptions ou de faire des actions croisés entre différents timers, plus rien ne fonctionnera comme tu le souhaites et tu bloqueras des heures à essayer de comprendre pourquoi, crois moi c'est du vécu.

    Il est plus judicieux de construire ces fonctions, très simple à mettre en oeuvre une fois pour toute, et en plus tu comprendras comment ça marche, il faut juste se plonger dans la doc du PIC et ses registres CCPxCON, TxCON, tout est dedans.
    @+

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

    Re : [PIC18F] Module PWM - Language C

    Salut,

    La je peux pas t´aider, c´est trop spécifique aux PIC que je n´ai jamais programmés!

    Mais as-tu vu le sit de Bigonoff dont plusieurs personnes parlent sur ce forum et qui apparemment est très complet sur la programmation des PICs?

    http://www.abcelectronique.com/bigon....php?par=f5d27

  7. #6
    RISC

    Re : [PIC18F] Module PWM - Language C

    jorg,

    As-tu choisi les bonnes API ?
    J'ai regarde la doc ( C:\MCC18\doc\periph-lib\PWM.htm)
    En fonction du PIC18F utilise il faut faire attention de bien appele l'API correspondante car les PIC18F possedent apparemment plusieurs versions de PWM.
    Verifies que le bon fichier source est utilise dans ton projet (fenetre disassembly listing)

    Quel PIC18F utilises-tu ?

    a+

  8. #7
    jorg1n

    Re : [PIC18F] Module PWM - Language C

    Bonjour,

    Quel PIC18F utilises-tu ?
    j'utilise un PIC 18F4525.

    Mais as-tu vu le sit de Bigonoff dont plusieurs personnes parlent sur ce forum et qui apparemment est très complet sur la programmation des PICs?
    Oui Oui je les ai déjà..mais généralement il parle en assembleur. Mais j'ai déja jeter un oeil sur la doc de mon micro..

    Il est plus judicieux de construire ces fonctions, très simple à mettre en oeuvre une fois pour toute, et en plus tu comprendras comment ça marche, il faut juste se plonger dans la doc du PIC et ses registres CCPxCON, TxCON, tout est dedans.
    Je pense que je vais me faire une fonction semblable...c'est peut etre plus judicieux..

    Encore merci
    Bonne journée

  9. #8
    inviteb5c0d7bb

    Re : [PIC18F] Module PWM - Language C

    Bonjour, je souhaite générer un pwm pour commander un driver moteur pas a pas L6228. j'arrive à générer un pwm normal mais est-il possible de choisir le nombre de périodes à envoyer? et une fois ce nombre de périodes passée arrêter le pwm pour le relancer plus tard?
    merci par avance

Discussions similaires

  1. Calcul PWM Period / PWM Duty Cycle
    Par Paintitblack dans le forum Électronique
    Réponses: 14
    Dernier message: 02/12/2010, 21h34
  2. Module PWM integré PIC16F88
    Par AntiPaniK dans le forum Électronique
    Réponses: 3
    Dernier message: 22/01/2008, 19h27
  3. du test a la pratique... PIC18F
    Par invite53ea1bbd dans le forum Électronique
    Réponses: 5
    Dernier message: 22/02/2007, 21h30
  4. Pic18f Adc
    Par invitecfe43b36 dans le forum Électronique
    Réponses: 1
    Dernier message: 28/07/2006, 15h43
  5. interruption PIC18F
    Par invite23732d21 dans le forum Électronique
    Réponses: 12
    Dernier message: 19/05/2006, 17h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.