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
Dernière révisionLes deux révisions suivantes
pwm_au_choix [2022/07/27 23:34] – créée Mushussupwm_au_choix [2022/07/27 23:56] Mushussu
Ligne 1: Ligne 1:
 ====== PWM sur n'importe quel pin ====== ====== PWM sur n'importe quel pin ======
-<code C++> 
-volatile uint8_t intensiteA; 
  
 +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) { ISR(TIMER2_OVF_vect) {
   PORTB |= (1 << PB5);   PORTB |= (1 << PB5);
-  OCR2A = intensiteA; 
 } }
  
Ligne 13: Ligne 13:
  
 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 d'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.txt · Dernière modification : 2022/07/28 05:38 de Mushussu