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

commande PWM en mikroc



  1. #1
    PAVNA

    commande PWM en mikroc


    ------

    Bonsoir,
    PWM1_Set_Duty(rapport cyclique); le rapport cyclique ici doit être un octet c'est à dire de 0 à 255 donc 0 correspond à un rapport cyclique de 0 et 255 correspond à un rapport cyclique 1 ou 100%.
    je veux que le rapport cyclique vient du convertisseur sachant que le convertisseur donne une valeur comprise entre 0 et 1023 sur 10 bits alors quoi faire ?
    comment je dois faire des transformations à la valeur lue par le convertisseur afin de l'exploiter ??? cad comment je peux avoir une valeur de 8 bit à partir de la valeur lue par le convertisseur ?? (avec mikro c) merci d'avance.

    -----

  2. Publicité
  3. #2
    MiKL.66

    Re : commande PWM en mikroc

    Bonjour,

    Tu divises pas 4 ou tu fais un décalage si tu préfères !
    Dernière modification par MiKL.66 ; 01/04/2014 à 17h23.

  4. #3
    PAVNA

    Re : commande PWM en mikroc

    ca marche pas même si je devise par 4: voila le code
    short int current_duty;
    unsigned int signe ;
    long int pourcent ;
    void init () {
    TRISA=0XFF;
    TRISC=0X00;
    ADCON0=0b111111001;
    ADCON1=0b00000000;
    PORTC=0X00;
    PORTA=0XFF;
    PWM1_Init(5000);
    }
    void main() {
    init();
    // initial value for current_duty
    for(;
    {
    signe=ADC_read(0); delay_ms(10) ;
    pourcent =(signe*5)/(1024) ;
    current_duty=(pourcent/4);
    PWM1_Set_Duty(current_duty);
    PWM1_Start();
    }
    }

  5. #4
    Thetimax

    Re : commande PWM en mikroc

    Bonsoir,

    En premier lieu, je vois qu'il y a un bit de trop dans l'octet "ADCON0"...
    Ensuite, je ne comprend pas pourquoi tu "passes" par toute ces variables, 1024 / 4 = 256...
    Et puis aussi, tu as mis dans ta boucle : "PWM1_Start();" , Cette routine doit seulement etre activée une fois apres le : "PWM1_Init(5000);"

    Du coup:

    Code:
    unsigned short  current_duty = 128;  // Declare la variable "current_duty" avec un ratio de 50% de base
    
     
     
    void init () {
    
    TRISA=0XFF;
    TRISC=0X00;
    ADCON0=0b111111001; // ??? A toi de regler ce probleme...
    ADCON1=0b00000000;
    PORTC=0X00;
    PORTA=0XFF;
    
    PWM1_Init(5000);
    PWM1_Set_Duty(current_duty);
    PWM1_Start();
    
    }
    
    void main() {
    
    
    init();
    
    
    while(1) {
    
     
    current_duty=(ADC_read(0) /4);
    PWM1_Set_Duty(current_duty);
    delay_ms(10);
    
    }
    
    }

    Bonne soirée...

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    PAVNA

    Re : commande PWM en mikroc

    Merciii bcq même avec ce code j'ai tjrs un signal avec un rapport cyclique =0 cad même si current_duty est different de 0 j'ai tjrs un rapport cyclique =0. Bizarre je sais pas pourquoi

Discussions similaires

  1. mikroC pro
    Par stross dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 21/05/2013, 11h21
  2. MikroC et CDC USB
    Par bypbop dans le forum Électronique
    Réponses: 83
    Dernier message: 12/03/2012, 15h58
  3. Mikroc pro
    Par IHCAAMEL dans le forum Électronique
    Réponses: 0
    Dernier message: 06/06/2011, 07h07
  4. Bug de MikroC PRO?????
    Par VIIV dans le forum Électronique
    Réponses: 2
    Dernier message: 12/07/2009, 15h30
  5. mikroC
    Par sloter dans le forum Électronique
    Réponses: 6
    Dernier message: 09/03/2009, 22h13
Découvrez nos comparatifs produits sur l'informatique et les technologies.