AVR - režim čítače Compare Output Mode, non-PWM

Jakub Ladman ladmanj na volny.cz
Pondělí Prosinec 1 08:41:35 CET 2014


Ahoj

Po delší době jsem rozjel malý projektík na AVR.
Konkrétně AT90USB162.

Potřebuju čítačem 1 čítat externí pulzy na pinu T1 a po jejich uřčitém
počtu překlopit pin OC1A a vygenerovat přerušení.

Pokud použiju režim pinu "0 1 Toggle OCnA/OCnB/OCnC on compare match",
pak všechno funguje, jak bych očekával, jenže já potřebuji v průběhu
čítání vždy vysokou úroveň a po skončení přejít do nuly.

Když použiju "1 0 Clear OCnA/OCnB/OCnC on compare match (set output to
low level)", pak to proběhne jen jednou a pak už nevím jak softwarově
přepnout ten pin do vysoké úrovně.

Když přepnu pin do "0 0 Normal port operation, OCnA/OCnB/OCnC
disconnected", nastavím jako gpio do jedničky a v zápětí zase přepnu do
1 0 Clear, tak to vygeneruje krátký puls, jen po dobu vykonání  toho
kódu, čili přepne se na gpio a pak se vrátí k čítači, kde je ovšem stále 0.

Ještě jsem nevyzkoušel nastavovat bit  FOCnA: Force Output Compare for
Channel A, ale podle datasheetu by tohle neměl ovlivňovat.
To až večer po práci.

Díky za pomoc, máte-li zkušenost.

Jakub Ladman


Další informace o konferenci Hw-list