je veut comprendre comment TIMER2 fonctionne ?

s'il vous plaît quelqu'un peut-il m'expliquer ces lignes 3,4,5,6 smiley-cry smiley-cry

TIMER_CONFIG_KHZ(val) ({
const uint16_t pwmval = SYSCLOCK / 2000 / (val);
TCCR1A = _BV(WGM11);
TCCR1B = _BV(WGM13) | _BV(CS10);
ICR1 = pwmval;
OCR1A = pwmval / 3;
})

Timer en mode PWM phase correct.
Compte de 0 jusqu'à la valeur contenue dans ICR1 puis il décompte jusqu'à 0 et ainsi de suite
La sortie bascule sur la valeur contenue dans le registre OCR1A
Voir la doc du processeur pour les détails http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf

merciii :slight_smile: ,

mon objectif final est de modifier la fonction enableIRout(int KHz) de la bibliothèque de Ken Shiriff
pour pouvoirs utiliser une autre pin que la pin 3.

void IRsend::enableIROut(int khz) {
// Enables IR output. The khz value controls the modulation frequency in kilohertz.
// The IR output will be on pin 3 (OC2B).
// This routine is designed for 36-40KHz; if you use it for other values, it's up to you

TIMER_DISABLE_INTR; //Timer2 Overflow Interrupt
pinMode(TIMER_PWM_PIN, OUTPUT);
digitalWrite(TIMER_PWM_PIN, LOW); // When not sending PWM, we want it low

TIMER_CONFIG_KHZ(khz);
}
et voila la définition de la fonction coloré en rouge

#define TIMER_CONFIG_KHZ(val) ({
const uint16_t pwmval = SYSCLOCK / 2000 / (val);
TCCR1A = _BV(WGM11);
TCCR1B = _BV(WGM13) | _BV(CS10);
ICR1 = pwmval;
OCR1A = pwmval / 3;
})

J'adore.

On commance par poser la question chez les anglais, c'est quand même plus classe. Mais quand ils répondent : RTFM :

Magician:
Full description in the data sheet of AtMegaxxxx

on se rend compte qu'un groupe de français existe.

D'habitude quand on se rend chez quelqu'un la première fois, par respect ,on regarde un peu le fonctionnement avant toute chose.

Eh bien non, on pose des questions dans la première rubrique qu'on trouve. Peu importe si cette rubrique est intitulée :
Réalisation et produit finis

En français quelque chose qui est réalisé est FINI sinon c'est une Etude.

Bon je vais boire ma tisane pour me calmer.

68tjs Tu me manques de respect , pour quoi vous parlez de cette façon !! :0

je suis encore nouveau dans ce forum , je sais pas encore le bon emplacement pour poser mes questions, y a t il un problème ???
en suite Je m'interroge sur cette expression blizzard "On commence par poser la question chez les anglais"
j'ai posté ma question en langues pour avoirs plus de réponses ni plus ni moins.

si vous étés un administrateur dans ce groupe, alors vous n'étiez pas a l'attitude.

Bonsoir,
Ce n'est pas un manque de respect de la part de 68tjs mais simplement un constat sur les points suivants (entre d'autres) :

  • quand je vais chez une personnes je lui dis au minimum bonjour,
  • sur le forum il n'y a que 4 rubriques qui ont des titres clairs mais encore faut-il se donner la peine de les lire,
  • la solution de beaucoup de questions sont déjà traitées sur le forum encore faut-il faire une recherche,
    Mais bon à la longue cela devient lassant alors soit cool et tu auras les réponses à tes interrogations.
    Pour déplacer ton topic, un petit mot au modo et il fera le nécessaire.
    @+