Go Down

Topic: je veut comprendre comment TIMER2 fonctionne ? (Read 2496 times) previous topic - next topic

YAAssine

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; \
})

fdufnews

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

YAAssine

#2
May 10, 2014, 07:52 pm Last Edit: May 10, 2014, 07:58 pm by YAAssine Reason: 1
merciii :) ,

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; \
})


68tjs

J'adore.

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

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.

YAAssine

#4
May 10, 2014, 08:35 pm Last Edit: May 10, 2014, 08:39 pm by YAAssine Reason: 1
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.

icare

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.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Go Up