IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Radim Sejk
Člen
Avatar
Radim Sejk:6.6.2017 9:44

Ahoj,

potřeboval bych rozjet PWM na pinu PB7 procesoru Atmega2560. Pročítal jsem různé návody jak toho dosáhnout, vyzkoušel hodně možností, ale stále se mi nedaří. Uměl by mi někdo pomoct?

Díky Radim.

 
Odpovědět
6.6.2017 9:44
Avatar
Petr Langer
Člen
Avatar
Odpovídá na Radim Sejk
Petr Langer:6.6.2017 12:13

Nakonfiguruj časovač jako zdroj PWM, podle pinoutu by to měl být T0 kanál C nebo T1 kanál C.

 
Nahoru Odpovědět
6.6.2017 12:13
Avatar
Radim Sejk
Člen
Avatar
Radim Sejk:6.6.2017 13:26

Hotovo, jen výstup je teď moc rychlý (perioda je podle osciloskopu někde kolem 15us). Potřeboval bych ale generovat slyšitelné tóny. V nastavení PWM mám toto:

OCR0A = 0x04;
  TCCR0A = (0 << COM0A1) | (1 << COM0A0) | (1 << WGM01) | (0 << WGM00);
  TCCR0B = (0 << WGM02) | (0 << CS02) | (0 << CS01) | (0 << CS00);

a pak používám následující funkci s parametrem frekvence:

void SoundOutput(unsigned int tone)
{
        if (tone!= 0)
        {
                OCR0A = tone;

                TCCR0B |= (1 << CS00);
        }
        else
        {
                TCCR0B &= ~((1 << CS02) | (1 << CS01) | (1 << CS00));
        }
}
 
Nahoru Odpovědět
6.6.2017 13:26
Avatar
Petr Langer
Člen
Avatar
Odpovídá na Radim Sejk
Petr Langer:6.6.2017 15:13

Periodu můžeš nastavit pomocí frekvenční předděličky. To se dělá pomocí CS bitů v TCCR registru. Když máš všechny tři v nule tak si myslím že by to ani nemělo fungovat. Zkus si nějak pohrát s kombinacema nebo si někde najdi jaká kombinace odpovídá jaký předděličce. Obecně platí čím vyšší předdělička, tím delší bude perioda.

 
Nahoru Odpovědět
6.6.2017 15:13
Avatar
Radim Sejk
Člen
Avatar
Radim Sejk:6.6.2017 17:46

Díky, za rady zítra to vyzkouším! :)

 
Nahoru Odpovědět
6.6.2017 17:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.