současně dvě smyčky
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
současně dvě smyčky
Ahoj, sem uplny zacatecnik a zajímá mne, jak spustit dvě smyčky současně pokud to vubec lze. Konkretne dioda blika na PWM vystupu plynule do plna a naopak. A soucasne chci generovat na jiny vystup "tone" o plynule menici se frekvenci. Takovy druh syreny a oba procesy aby byly synchronizovane.
Re: současně dvě smyčky
Smyčku můžeš mít pouze jednu. Tyhle dva úkony se ale dají snadno zvládnout v jedné smyčce. Dokonce se dá zvládnout daleko více úkonů, které se pak z vnějšku zdají jako by byly vykonávány paralelně. Akorát se nad tím musíš trochu zamyslet a rozvrhnout si to, než začneš psát kód.
Re: současně dvě smyčky
Bacha na jednu věc.
Pro PWM a tone() se musí vybrat takové piny, aby se navzájem neovlivňovaly.
https://www.arduino.cc/reference/en/lan ... d-io/tone/
"...Use of the tone() function will interfere with PWM output on pins 3 and 11 (on boards other than the Mega)...."
Nedávno jsem se přesně na tomhle detailu zasek na hodně dlouhou dobu.
Pro PWM a tone() se musí vybrat takové piny, aby se navzájem neovlivňovaly.
https://www.arduino.cc/reference/en/lan ... d-io/tone/
"...Use of the tone() function will interfere with PWM output on pins 3 and 11 (on boards other than the Mega)...."
Nedávno jsem se přesně na tomhle detailu zasek na hodně dlouhou dobu.
Re: současně dvě smyčky
A jak se ta interference projevuje?
Zrovna mám rozdělaný projekt, kde na 11 mám tone a na 3 bude jedna z nožiček RGB diody.
Ještě nejsu ve fázi souběhu, tak se jen ptám. Nevadilo by mi, kdyby po čas tone byla RGB dioda zhaslá...
Zrovna mám rozdělaný projekt, kde na 11 mám tone a na 3 bude jedna z nožiček RGB diody.
Ještě nejsu ve fázi souběhu, tak se jen ptám. Nevadilo by mi, kdyby po čas tone byla RGB dioda zhaslá...
Re: současně dvě smyčky
Viz ten odkaz - kdyz na tech nozickach ()libovolne z nich) pouzivas tone(), tak na druhe tone() pouzit nemuzes a ani PWM. Samozrejme diodou tam blikat muzes, pokud to nebude pomoci PWM.
Re: současně dvě smyčky
To je jasné, šlo mi o to, zda na pinu 3 můžu mít PWM (když zrovna pin 11 nepoužívá tone) a pak v jiném čase používat tone, když je pin 3 na LOW.
Aby se třeba při použití PWM (3) negeneroval náhodný tone (11), když má být ticho atp.
Aby se třeba při použití PWM (3) negeneroval náhodný tone (11), když má být ticho atp.
Re: současně dvě smyčky
Nevím jak na Arduinu, ale já jsem s tím měl problém na STM32F103.
Závada se projevovala tak, že jsem měl taky na třech PWM kanálech RGB LED. Jejich jas se měnil úplně bez problému podle očekávání pomocí funkce analogWrite().
Jednou za čas došlo ke stavu, kdy se měl rozeznít výstražný pískák pomocí funkce tone().
V parametru funkce byla nastavena doba generování několika tónů na pár desetin sekundy.
Tóny se generovaly správně. Ale od té doby až do resetu dvě ze tří LED přestaly svítit. Třetí fungovala pořád normálně.
Nepomohlo ani použití funkce noTone(). Prostě až do resetu byly dvě LED úplně mrtvý.
Závada se projevovala tak, že jsem měl taky na třech PWM kanálech RGB LED. Jejich jas se měnil úplně bez problému podle očekávání pomocí funkce analogWrite().
Jednou za čas došlo ke stavu, kdy se měl rozeznít výstražný pískák pomocí funkce tone().
V parametru funkce byla nastavena doba generování několika tónů na pár desetin sekundy.
Tóny se generovaly správně. Ale od té doby až do resetu dvě ze tří LED přestaly svítit. Třetí fungovala pořád normálně.
Nepomohlo ani použití funkce noTone(). Prostě až do resetu byly dvě LED úplně mrtvý.
Re: současně dvě smyčky
Myslím (tuším), že tam dochází k tomu, že se PWM funkce a Tone() perou o vnitřní časovač.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 17 hostů