PWM x 6 atmega 328P

32 Views Asked by At

In my project I use ATmega328P quartz 18432000 Hz and pre-divide by 8 How to reduce the PWM frequency to about 100Hz on all outputs now is 9 kHz

`void init_pwm()
{
    // Wyłącz wszystkie kanały PWM na początek
    TCCR1A = 0;
    TCCR1B = 0;
    TCCR0A = 0;
    TCCR0B = 0;
    TCCR2A = 0;
    TCCR2B = 0;

// Konfiguracja pierwszego kanału (OCR1A) - PB1 (pin 9)
TCCR1A |= (1 << WGM10) | (1 << COM1A1);
TCCR1B |= (1 << WGM12) | (1 << CS10); // Preskaler = 1

// Konfiguracja drugiego kanału (OCR1B) - PB2 (pin 10)
TCCR1A |= (1 << WGM10) | (1 << COM1B1);

// Konfiguracja kanału PD3 (pin 3)
TCCR0A |= (1 << WGM00) | (1 << WGM01) | (1 << COM0A1); // Odwrócone działanie PWM
TCCR0B |= (1 << CS00); // Preskaler = 1

// Konfiguracja kanału PD5 (pin 5)
TCCR0A |= (1 << WGM00) | (1 << WGM01) | (1 << COM0B1); // Odwrócone działanie PWM

// Konfiguracja kanału PD6 (pin 6)
TCCR2A |= (1 << WGM20) | (1 << WGM21) | (1 << COM2A1); // Odwrócone działanie PWM
TCCR2B |= (1 << CS20); // Preskaler = 1

// Konfiguracja kanału PB3 (pin 11)
TCCR2A |= (1 << WGM20) | (1 << WGM21) | (1 << COM2B1); // Odwrócone działanie PWM

}`

0

There are 0 best solutions below