Brojačka periferna jedinica je neophodni deo svakog mikrokontrolera. Ova jedinica oslobađa mikrokontrolersku CPU skoro svih aktivnosti u vezi merenja vremena (timer mod rada) ili broja pristiglih impulsa (counter mod rada). CPU treba samo da konfiguriše i startuje brojač da broji određeno vreme. Dok se ovo vreme broji, CPU može da radi neki drugi posao sve dok se ne dobije signal prekida po isteku potrebnog vremena. Slično, ukoliko je potrebno brojati nadolazeće impulse, CPU konfiguriše brojački sistem u counter mode, zatim nastavlja da radi neki drugi posao, povremeno koristeći broj pristigli impusa (čitajući neki registar brojača) za potreban račun.

 Timer/counter je obično isto kolo koje ili broji sistemski clock za koji znamo trajanje pa je to vreme (timer) ili broji prispele impulse na neki ulazni pin pa je to brojač (counter). Stvar je samo u konfigurisanju, tj. u programiranju kontrolnog registra brojačkog sistema.

Timer mode

Brojač radi na osnovu sistemskog clock-a čija je perioda poznata i time se koristi za merenje tačno određenih vremenskih intervala. Ovim brojač radi u režimu timer – merač vremena. Svaki put kada brojač dostigne određenu vrednost postavlja signal prekida. Ovim dobijamo signal prekida u tačno određenim vremenskim intervalima, a u prekidnoj rutini postavljamo program koji je neophodno izvršavati u svakoj novoj periodi odabiranja sistema (čitanje ulaza, račun digitalnog zakona upravljanja, postavljanje izlaza). Većina novijih mikrokontrolera poseduju složene brojačke periferije koje omogućuju automatski reload brojačkog kola, tako da brojač jednom konfigurisan, nema potrebe ponovo startovati ili dopunjavati mu registre.

Counter mode

 Brojač broji pristigle impulse. Primer: Broj pristiglih impulsa sa optičkog enkodera u određenom vremenskom intervalu je proporcionalan brzini motora. Za merenje brzine je neophodno kofigurisati jedan brojač u timer modu, i drugi postaviti u counter mod. Po isteku vremena koje nam meri timer, ulazimo u prekidnu rutinu koju timer inicira, čitamo vrednost brojača, računamo brzinu. Resetujemo brojač da bi ponovo merio brzinu u toku sledeće periode (ovo poslednje je lep školski primer, ali nije dobro rešenje u praksi).

Slika br.1 Opšta šema brojačkog sistema sa osnovnim funkcijama

Primer brojačkog sistema primenjenog u Microchip mikroprocesorskoj familiji dsPIC30F4011/4012

 Primer primene jednog sistemskog brojača u timer modu je dat na sledećoj slici. Sadržaj brojača se inkrementira uvećava za jedan) sa svakim novim clock ciklusom, periode Tclk. Nakon što se brojčana vrednost brojača poklopi sa vrednošću zapisanom u registru TIMER_PERIOD brojač se resetuje, i generiše se prekid. Prošlo je odreženo vreme.

Koliko je to vreme?

Ts = TIMER _ PERIOD×Tclk

Slika br.2 Način rada brojačkog modula u timer modu i u counter modu

Koju vrednost treba upisati u TIMER_PERIOD registar da bi se dobila perioda Ts ?

Na primer, ako želimo peridu odabiranja od 1 ms, što je jednako frekvenciji od 1000 Hz, za clock od 1 MHz, u brojački registar TIMER_PERIOD treba upisati

Slika br.3 16 –bitni Timer 2 blok dijagram – dsPIC30F4011/4012

Sva dalja objašnjenja možete pronaći pronaći u sledećim materijalima: Primena mikroprocesora u energetici – mikroprocesor i mikrokontroler

POSTAVI ODGOVOR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.