Outils pour utilisateurs

Outils du site


pwm_au_choix

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
pwm_au_choix [2022/07/27 23:34] – créée Mushussupwm_au_choix [2022/07/28 05:38] (Version actuelle) Mushussu
Ligne 1: Ligne 1:
 ====== PWM sur n'importe quel pin ====== ====== PWM sur n'importe quel pin ======
-<code C++> 
-volatile uint8_t intensiteA; 
  
-ISR(TIMER2_OVF_vect) {+Permet de générer une PWM en choisissant le pin de sortie de sorte à contourner les sorties dédiées. 
 + 
 +<code C++> 
 +ISR(TIMER2_OVF_vect) { // Routine d'interruption de dépassement (Overflow)
   PORTB |= (1 << PB5);   PORTB |= (1 << PB5);
-  OCR2A = intensiteA; 
 } }
  
-ISR(TIMER2_COMPA_vect) {+ISR(TIMER2_COMPA_vect) { // Routine d'interruption de comparaison A
   PORTB &= ~(1 << PB5);   PORTB &= ~(1 << PB5);
 } }
  
 void setup() { void setup() {
-  DDRB |= (1 << DDB5);+  DDRB |= (1 << DDB5); // Met le port B5 en sortie
   TCCR2A = 0;   TCCR2A = 0;
   TCCR2B = 0;   TCCR2B = 0;
   TCCR2B |= (1 << CS21) | (1 << CS20); // Prescaler /32   TCCR2B |= (1 << CS21) | (1 << CS20); // Prescaler /32
-  TIMSK2 |= (1 << OCIE2A); // Activation de linterruption de comparaison +  TIMSK2 |= (1 << OCIE2A); // Activation de l'interruption de comparaison A 
-  TIMSK2 |= (1 << TOIE2); // Activation de l'interruption d'overflow+  TIMSK2 |= (1 << TOIE2); // Activation de l'interruption de dépassement (Overflow)
   sei();   sei();
 } }
Ligne 25: Ligne 25:
   for (uint8_t i = 0; i < 255; i++) {   for (uint8_t i = 0; i < 255; i++) {
     _delay_ms(3);     _delay_ms(3);
-    intensiteA = i;+    OCR2A = i;
   }   }
  
   for (uint8_t i = 254; i > 0; i--) {   for (uint8_t i = 254; i > 0; i--) {
     _delay_ms(3);     _delay_ms(3);
-    intensiteA = i;+    OCR2A = i;
   }   }
 } }
- 
 </code> </code>
 +
 +[[https://github.com/hexagon5un/AVR-Programming/tree/master/Chapter10_Pulse-Width-Modulation/pwmOnAnyPin|Liens ressources]]
 +{{tag>arduino sylvain}}
pwm_au_choix.1658964840.txt.gz · Dernière modification : 2022/07/27 23:34 de Mushussu