Outils pour utilisateurs

Outils du site


pwm_au_choix

PWM sur n'importe quel pin

Permet de générer une PWM en choisissant le pin de sortie de sorte à contourner les sorties dédiées.

ISR(TIMER2_OVF_vect) { // Routine d'interruption de dépassement (Overflow)
  PORTB |= (1 << PB5);
}
 
ISR(TIMER2_COMPA_vect) { // Routine d'interruption de comparaison A
  PORTB &= ~(1 << PB5);
}
 
void setup() {
  DDRB |= (1 << DDB5); // Met le port B5 en sortie
  TCCR2A = 0;
  TCCR2B = 0;
  TCCR2B |= (1 << CS21) | (1 << CS20); // Prescaler /32
  TIMSK2 |= (1 << OCIE2A); // Activation de l'interruption de comparaison A
  TIMSK2 |= (1 << TOIE2); // Activation de l'interruption de dépassement (Overflow)
  sei();
}
 
void loop() {
  for (uint8_t i = 0; i < 255; i++) {
    _delay_ms(3);
    OCR2A = i;
  }
 
  for (uint8_t i = 254; i > 0; i--) {
    _delay_ms(3);
    OCR2A = i;
  }
}

Liens ressources

pwm_au_choix.txt · Dernière modification : 2022/07/28 07:38 de Mushussu