atmega: timer1 w trybie CTC

Timer1 dziala w trybie CTC: liczy od 0 do wartosci w OCR1A, generuje IRQ przy przepelnieniu (dojsciu do OCR1A). Taki prosty "zegarek-cron" w sofcie. OCR1A jest tak ustawione by INT bylo np co 0.1s albo 1s dla danego F_CPU i prescalera timera1. Pewnie nie jeden z was taki tryb uzywal.

Czy/jak da sie uzyc w tym trybie OCR1B by na nozce OC1b uzystac pwm? Bo na nozce OC1a raczej sie nie da ;) (najwyzej prostokat o F_zliczania/2 albo czysto programowo) teraz mam:

TCCR1A = 0; TCCR1B = (1<<WGM12)|(TIMER1PRESCALE); // timer1prescale =0x04 dla 256 OCR1A = ODPOWIEDNIA_WARTOSC; // u mnie 15624 TIMSK |= (1<<OCIE1A);

Domyslam sie ze wpis wartosci OCR1B > OCR1A daje pwm=max caly czas (lub min, zaleznie od polaryzacji wyjscia)

Czy wystarczy COM1B1:0 = 2 lub 3 i bedzie pwm na OC1b juz generowany (o okresie rownym czasowi zliczania timer1)?

Reply to
BartekK
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.