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