ATMega a timer2 s OC2
Jan Waclawek
konfera@efton.sk
Středa Duben 23 09:57:36 CEST 2008
Mno, asi by to islo aj takto, ale to neriesi "neprogramovanie prerusenia" na tom externom preruseni - navyse musis mat urobeny interrupt aj na ten overflow, ktory timer2 zastavi alebo nieco podobne.
Ja to vidim tak, ze ak nie je z nejakeho dovodu nevyhnutne potrebne setrit cyklami v okamihu compare match (setrit pri prichode externeho prerusenia nejde), tak treba napisat aj to prerusenie na compare match a machat pinom rucne. Zda sa mi to ako najjednoduchsie.
Asi nema zmysel to viac rozmazavat kym sa k tomu Riso nevyjadri.
wek
----- Original Message ---------------
Subject: RE: ATMega a timer2 s OC2
From: "Rosko, Peter" <Peter.Rosko@siemens.com>
Date: Wed, 23 Apr 2008 09:44:44 +0200
To: "HW-news" <hw-list@list.hw.cz>
>ahoj wek,
>myslim, ze nemas pravdu, Richard sice nechce PWM ale v jeho pripade sa
>to pomocou PWM modu da spravit
>dolu je povodny text
>
>timer2 je nastaveny tak, ze od 0 do OCR2 dava jednotku, od OCR2 do 255
>dava 0
>pri externom preruseni sa timer2 vynuluje, tym padom je na vystupe 1
>ak ext prerusenie nastane pred OCR2, tak sa znovu timer vynuluje,
>zostava tam 1
>ak ext prerusenie nenastane pred OCR2, tak sa vystup da do 0
>ak nepride ziadne prerusenie, tak sa vyvola overflow
>
>hmm?
>
>p.rosko
>
>
>
>
>> Mnojo, lenze ak tomu dobre rozumiem, Riso nechce PWM, ale
>> chce z toho spravit akysi retriggerable monostabil: aby pri
>> prichode hrany na vstup sa vystup nastavil na jednotku a ak
>> pride dalsi do nejakeho casu, tak ta jednicka tam zostane,
>> inak to padne na nulu.
>>
>> Lenze presne na toto hardware v ATM nie je (alebo o nom
>> neviem). Takze sa nezaobides bez nejakeho programovania;
>> maximalne tak mozes usetrit to prerusenie od output compare
>> (ak tam nechces robit aj nieco ine - predpokladam, ze to co
>> tam je teraz, su pozostatky ladenia). Dalo by sa potom v tom
>> externom preruseni nahodit OC tak, ze sa prestavi COM20/COM21
>> na "set OC on compare match" a "rucne" sa vyvola output
>> compare udalost nastavenim FOC2 (nie je mi jasny ten opis,
>> mozno to treba robit na dva kroky, najprv nastavit
>> COM20/COM21 a az potom FOC2 - treba vyskusat).
>>
>> wek
>>
>Moj zamer je takyto:
>pri preruseni od INT4 sa na PortB.7 nastavi 1, timer2 sa vynuluje a po
>urcitom case danom OCR2 sa PB.7 preklopi do 0.
>Prerusenie je externe vyvolane kazdych 10 ms. Ak nenastane, tak timer2
>pretecie a vyvola sa prerusenie SIG_OVERFLOW2
Další informace o konferenci Hw-list