pwm_au_choix
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
pwm_au_choix [2022/07/27 23:34] – créée Mushussu | pwm_au_choix [2022/07/28 05:38] (Version actuelle) – Mushussu | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== PWM sur n' | ====== PWM sur n' | ||
- | <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' | ||
PORTB |= (1 << PB5); | PORTB |= (1 << PB5); | ||
- | OCR2A = intensiteA; | ||
} | } | ||
- | ISR(TIMER2_COMPA_vect) { | + | ISR(TIMER2_COMPA_vect) { // Routine d' |
PORTB &= ~(1 << PB5); | PORTB &= ~(1 << PB5); | ||
} | } | ||
void setup() { | void setup() { | ||
- | DDRB |= (1 << DDB5); | + | DDRB |= (1 << DDB5); |
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 | + | TIMSK2 |= (1 << OCIE2A); // Activation de l' |
- | TIMSK2 |= (1 << TOIE2); // Activation de l' | + | TIMSK2 |= (1 << TOIE2); // Activation de l' |
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); | ||
- | | + | |
} | } | ||
for (uint8_t i = 254; i > 0; i--) { | for (uint8_t i = 254; i > 0; i--) { | ||
_delay_ms(3); | _delay_ms(3); | ||
- | | + | |
} | } | ||
} | } | ||
- | |||
</ | </ | ||
+ | |||
+ | [[https:// | ||
+ | {{tag> |
pwm_au_choix.txt · Dernière modification : 2022/07/28 05:38 de Mushussu