PWM très simple sur un AVR
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

PWM très simple sur un AVR



  1. #1
    Poseidon88

    PWM très simple sur un AVR


    ------

    Bonjour,

    J'essaye de générer un simple signal carré sur un attiny861 mais je bloque un peu sur la config des régistres.
    Sur d'autres AVR j'ai réussi, mais apparemment celui ci est un peu particulier.
    Le but étant de charger OCR1A par une valeur pour modifier le rapport cyclique de mon pwm.

    Voici ce que j'ai à modifier comme valeur :

    Code:
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=OCR1C
    // OC1A output: Disconnected
    // OC1B output: Disconnected
    // OC1C output: Disconnected
    // Fault Protection Mode: Off
    // Fault Protection Noise Canceler: Off
    // Fault Protection triggered on Falling edge
    // Fault Protection triggered by the Analog Comparator: Off
    // Dead Time Rising Edge: 0.000 us
    // Dead Time Falling Edge: 0.000 us
    // Timer1 Overflow Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    // Compare D Match Interrupt: Off
    // Fault Protection Interrupt: Off
    PLLCSR=(0<<PCKE) | (0<<PLLE) | (0<<PLOCK);
    
    TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (1<<PWM1A) | (0<<PWM1B);
    TCCR1B=(0<<PWM1X) | (0<<PSR1) | (0<<DTPS11) | (0<<DTPS10) | (0<<CS13) | (0<<CS12) | (0<<CS11) | (0<<CS10);
    TCCR1C=(0<<COM1A1S) | (0<<COM1A0S) | (0<<COM1B1S) | (0<<COM1B0S) | (0<<COM1D1) | (0<<COM1D0) | (0<<PWM1D);
    TCCR1D=(0<<FPIE1) | (0<<FPEN1) | (0<<FPNC1) | (0<<FPES1) | (0<<FPAC1) | (0<<FPF1) | (0<<WGM11) | (0<<WGM10);
    TCCR1E=(0<<OC1OE5) | (0<<OC1OE4) | (0<<OC1OE3) | (0<<OC1OE2) | (0<<OC1OE1) | (0<<OC1OE0);
    TC1H=0x00;
    TCNT1=0x00;
    TC1H=0x00;
    OCR1A=32000;
    TC1H=0x00;
    OCR1B=0x00;
    TC1H=0x00;
    OCR1C=0x00;
    TC1H=0x00;
    OCR1D=0x00;
    DT1=0x00;
    Le lien vers la doc : http://www.atmel.com/Images/doc7753.pdf Page 103.

    De plus j'arrive pas à voir quelle sortie utiliser, ni quel "timer" est utilisé...

    Pouvez vous m'aider à comprendre la doc ? Merci

    -----

  2. #2
    Poseidon88

    Re : PWM très simple sur un AVR

    Bon en fait c'est bon j'ai réussi.
    Par contre petit problème :

    - après avoir mis en oeuvre le CAN pour gérer mon PWM avec une photo-résistance, cela fonctionne mais à l'envers !

    Je refais juste mon PWM et quand je recharge mon OCR1A avec la valeur 255, le rapport cyclique est de 0 et quand je met par exemple 10, il est de 90%.
    Cela vient du fait que je charge la valeur de "début de comptage " par 255 donc il atteint 255 tout de suite donc rapport cyclique 0.

    Mais comment inverser ca ? Pour que quand je mette 255, rapport 100% et quand je met 0, rapport de 0% ?

Discussions similaires

  1. Question très simple sur Proteus
    Par newtech1 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/03/2012, 10h29
  2. Question très simple sur mélange acido-basique
    Par invite23b5ba7c dans le forum Chimie
    Réponses: 4
    Dernier message: 12/03/2011, 09h09
  3. question très simple sur les Oses
    Par sinsin dans le forum Chimie
    Réponses: 2
    Dernier message: 10/01/2010, 15h21
  4. Petite question TRES simple sur l'intensité
    Par DaTs dans le forum Électronique
    Réponses: 4
    Dernier message: 27/01/2009, 21h13
  5. Probleme sûrement très simple sur solubilité
    Par invitefbb2cc7d dans le forum Chimie
    Réponses: 7
    Dernier message: 14/11/2006, 15h51
Découvrez nos comparatifs produits sur l'informatique et les technologies.