Nastavenie PWM na ATtiny2313 ku generovanie impulzov

To se mi nezdá. Možná to fungovalo přibližně (protože máš určitě stále špatně nastavený timer - počítá do 255), ale nemyslím, že přesně. Menšímu číslu musí odpovídat užší kladný pulz. Máš na tom pinu nastavenou nulu? Když totiž odpojíš OC jednotku, kontrolu nad pinem převezme PORTn registr.
Co mód timeru, už jsi to opravil? (perioda 3.2 ms bez vypínání OC byla rozhodně špatně).
Mohl bys sem vložit kód s nastavující timer a přerušení jak ho teď máš?

prikladam zdrojak
servo.c (1.28 KB)

Problém s délkou periody by mohl být vyřešen - bit WGM02 není v TCCR0A :wink:
Ještě bych upravil “if (cykl==0) {TCCR0A = TCCR0A & (~(1<<COM0B1));}”. Byly tam totiž 2 bitové operace najednou.

perioda je uz presne 20ms aj pulzy su 0,5-2,5 ms akurat ze su v L,
nerozumiem preco su v L a ked vyhodim tie podmienky a vypinanie portu tak su v H neda sa znegovat port?

Na tiny se port negovat nedá (na Xmeze ano), můžeš ještě vyzkoušet invertující režim (s nastavováním i COM0B0) a kdyby to nešlo, lze to udělat programově (přetečení -> pin=1, compare match přerušení -> pin=0).
Taky mi ale není jasné, proč by se mělo takhle měnit chování :frowning:

vyriesil som to hw - tranzistorom, dakujem za rady.