Domaći frekventni brojač na ATTINY2313. Domaći frekventni brojač na ATTINY2313 Jednostavan brojač frekvencije na attiny2313 sa dinamičkom indikacijom

Brojač frekvencija visokih performansi koji mjeri frekvencije od 1Hz do 10MHz (9,999,999) sa rezolucijom od 1Hz u cijelom opsegu. Idealan za generatore funkcija, digitalne vage ili kao samostalni uređaj. Jeftin je i jednostavan za proizvodnju, sastavlja se od lako dostupnih dijelova, male je veličine i može se montirati na panel na mnoge uređaje.

Kolo se sastoji od sedam 7-segmentnih LED dioda, AVR ATtiny2313 i nekoliko tranzistora i otpornika. AVR radi sav posao i nisu potrebni dodatni čipovi. Mikrokontroler broji broj impulsa koji su došli na njegov ulaz u 1 sekundi i prikazuje taj broj. Najvažnija stvar je vrlo precizan tajmer, a implementiran je na 16-bitnom Timer1 u CTC modu. Drugo, 8-bitni brojač radi kao Counter0 i broji impulse na ulazu T0. Svakih 256 impulsa izaziva prekid u kojem program povećava množitelj. Kada dobijemo prekid od 1 sekunde, sadržaj množitelja se množi sa 256 (pomak ulijevo za 8 bita). Ostatak impulsa izbrojanih od strane brojača upisuje se u registar i dodaje rezultatu množenja. Ova vrijednost se zatim razlaže na pojedinačne brojeve, koji se prikazuju na indikatorima. Nakon toga, prije izlaska iz prekida od 1 sekunde, oba brojača se istovremeno resetuju i mjerenje počinje ponovo. U slobodno vrijeme od prekida, regulator je uključen u dinamičku indikaciju.

Rezolucija i tačnost:
Preciznost zavisi od generatora takta. Kvarc mora biti dobrog kvaliteta i imati što nižu ppm (toleranciju). Biće bolje ako je frekvencija višestruka od 1024, na primjer, 16 MHz ili 22,1184 MHz. Za mjerenje frekvencija do 10 MHz potrebno je koristiti kvarc ne manji od 21 MHz, na primjer, 22,1184 MHz. Merač frekvencije može izmeriti do 47% frekvencije prirodnog kristala. Ako postoji dobar industrijski mjerač frekvencije, onda možete kalibrirati krug dodavanjem trimer kondenzatora (1pF-10pF) između jednog od kvarcnih vodova i uzemljenja, te prilagoditi frekvenciju u skladu s očitanjima industrijskog frekventnog mjerača.

U izvornoj arhivi postoji nekoliko opcija za različite kvarce, ali možete sastaviti svoju verziju.

Talasni oblik:
U principu, uređaj razumije bilo koji valni oblik od 0 do 5V, a ne samo pravokutne impulse. Sinusoidni i pravougaoni impulsi se broje na zadnjoj ivici kada padne ispod 0,8V.

Uređaj nema zaštitu od prekoračenja ulaznog napona iznad 5 volti.

Uređaj ima ulaz visokog otpora i ne opterećuje krug koji se testira - čak možete izmjeriti frekvenciju od 220 volti AC dodirom prstom na ulaz. Brojač frekvencije se može pretvoriti u mjerenje frekvencija do 100 MHz u koracima od 10 Hz dodavanjem brzog razdjelnika na ulaz.

Prikaz:
U režimu dinamičke indikacije korišteno je sedam sedmosegmentnih indikatora sa zajedničkom anodom. Ako je svjetlina nedovoljna, možete smanjiti vrijednosti otpornika koji ograničavaju struju, ali morate imati na umu da je maksimalna impulsna struja svakog izlaza mikrokontrolera 40 mA. Podrazumevano, otpor otpornika je 100 oma. Beznačajne nule su izbrisane softverom. Vrijednosti se ažuriraju svake sekunde.

Štampana ploča:
109mm x 23mm obostrani PCB - nažalost, 7 indikatora se ne uklapaju u radni prostor Eagleove besplatne verzije, pa su ručno nacrtani. Postoje 3 žičane veze koje treba napraviti na ploči - prva je napajanje i VCC izlazna veza kontrolera - ova veza je prikazana na sloju sitotiska. Druga dva povezuju decimalne tačke indikatora sa otpornicima od 330 oma koji se nalaze na donjem sloju. Na vrhu ploče nalazi se Atmel ISP-6 konektor. Kontakt 1 je prvi na strani kvarca. Ovaj konektor je opcioni i potreban samo za programiranje kontrolera. Indikatore treba zalemiti na određenoj udaljenosti od ploče kako biste mogli dovući lemilicu do provodnika zalemljenih s vrha ploče.

Ovaj instrument je dizajniran za mjerenje frekvencija između 0-9999 Hz, ali kada se koristi djelitelj frekvencije na ulazu, ovaj raspon se shodno tome proširuje. Maksimalni ulazni napon je 3V, pod uslovom da nema dodatnog razdjelnika napona, minimalni je 0,15V, također pod uslovom da ga nema. Maksimalna frekvencija mjerenja može se povećati promjenom programskog koda, ali o tome kasnije.

Krug uređaja je relativno jednostavan i prikazan je u nastavku:

Kolo je bazirano na 8-bitnom mikrokontroleru proizvođača Atmega8A-PU. Za taktiranje jezgra mikrokontrolera koristi se oscilator sa eksternim kvarcnim rezonatorom. Izbor takvog generatora je zbog zahtjeva za stabilnost frekvencije potonjeg. Kao indikator se koristi sedmosegmentni četvorocifreni LED indikator sa zajedničkom anodom i dinamičkom indikacijom. Struja indikatorskih segmenata nije ograničena otpornicima, jer se koristi dinamička indikacija, a naravno i pulsirajuća struja koju segmenti indikatora uspješno podnose, kao i port mikrokontrolera. Ulazni čvor je napravljen na elementima R2, D1, D2, C3, R3, R4, R1, Q1. Ovaj čvor omogućava pojačavanje/ograničavanje signala koji dolaze na njegov ulaz (otpornik i diode na ulazu frekventnog brojača ograničavaju ulazni signal, tranzistor je odgovoran za pojačanje signala na TTL nivo). Štampana ploča uređaja također nije komplikovana. Napravljen je od jednostranog folijskog materijala (prvobitno je planirano da bude dvostrano, ali nije bilo dostupno pa sam se odlučio na jednostrani). Topologija ploče je prikazana ispod.

Što se tiče programa za mikrokontroler, on je razvijen u okruženju (projektni fajl je u prilogu). Za brojanje impulsa koristio sam prekide na INT0 ulazu mikrokontrolera, a da ograničim vrijeme brojanja koristio sam prekide tajmera TMR0. Budući da ovaj tajmer ima predskaler sa faktorom podjele 1/256 (zbog činjenice da je osmocifreni), frekvencija prekida se izračunava na sljedeći način: Fprev.=F gen.÷256÷thr. poslovi. U svom dizajnu, izabrao sam frekvenciju prekida od 200 Hz. Kao što sam gore napisao, frekvencija mjerenja se može povećati. Da biste to učinili, trebate samo ograničiti vrijeme mjerenja. Ovo se radi promjenom broja 200 u 2 (vrijeme mjerenja nije 1s već 10ms, granična frekvencija je 99999Hz), u kodu, kao što je prikazano na slici u izvornom kodu u C.

Za programiranje mikrokontrolera koristio sam paralelni programator. Kao što možete vidjeti, u mom dizajnu, vanjski pin za resetiranje se koristi kao normalan port. Ako nemate paralelni programator, onda je ovdje opcija kola gdje se koristi port D mikrokontrolera i nema potrebe za korištenjem RESET pina kao normalnog izlaznog porta.

Evo primjera postavljanja osigurača u programu:

Evo dijagrama opcije brojača frekvencije koja koristi RESET za namjeravanu svrhu:

A ovdje je i topologija ploče za drugu verziju kola:

Za napajanje strujnog kola koristi se stabilizirano napajanje od 5V (koristio sam kompjutersko napajanje, tako da u kolu nema stabilizirajućih elemenata).

U ovoj shemi nema oskudnih dijelova, ali ću ipak navesti popis zamjenskih i analognih. Dakle, Atmega8A-PU mikrokontroler se može zamijeniti sličnim Atmega8-16PU (usput, potonji je poželjniji). Otpornici se mogu uzeti sa snagom od 0,125 W, s izuzetkom R2, bolje je uzeti na 0,5 W. Kondenzatori - za generator su diskovi, keramički, a za ulaznu jedinicu - bilo koji odgovarajući po parametrima. Tranzistor se može zamijeniti domaćim KT3102 (kao što su eksperimenti pokazali za KT315, koeficijent prijenosa struje h21E je prenizak). Možete uzeti bilo koji LED indikator koji je prikladan po veličini (i nisu kritični). Kvarcni rezonator je korišten na frekvenciji od 3267800 Hz (3,2768 MHz).

Fotografije gotovog uređaja prikazane su u nastavku.

Prva fotografija prikazuje otpornik koji je spojen na RESET MK napajanje (lijevo od druge provjere firmvera, sa resetiranjem).

Lista radio elemenata

Oznaka Tip Denominacija Količina BilješkaProdavnicaMoja beležnica
U1 MK AVR 8-bit

ATmega8A

1 ATmega 8-16PU U notes
Q1 bipolarni tranzistor

KT3102

1 2N3390 U notes
VD1, VD2 ispravljačka dioda

1N4148

2 U notes
C1, C2 Kondenzator27 pF2 U notes
C3 Kondenzator22 nF1 U notes
R1, R4 Otpornik

470 ohma

2 U notes
R2 Otpornik

100 ohma

1
Vrlo koristan i jednostavan uređaj, koji je jednostavno neophodan u kreativnoj laboratoriji radio-amatera, može se napraviti na PIC16F628A MK. Za mjerenje frekvencija do 30 MHz, ovaj digitalni mjerač frekvencije je dizajniran na uobičajenom PIC16F628A kontrolnom čipu. Njegov dijagram se sastoji od osnovnog modula sa ulaznim drajverom koji je povezan na njegov ulaz za brojanje. Krug mjerača frekvencije prikazan je na donjoj slici:

Ovaj mjerač se može koristiti u dva načina rada - digitalna skala i frekventnomjer. Kada se napajanje uključi, mjerač frekvencije prelazi u način rada u kojem je radio prije posljednjeg isključenja. Ako je to bio režim brojača frekvencije, režim brojača frekvencije „F.“ će biti prikazan na lijevoj cifri indikatora. Takođe, "0" će biti prikazano u nižoj cifri indikatora. Merač frekvencije će automatski ući u režim merenja frekvencije i biće u stanju pripravnosti. Kada se signal primeni na ulaz, znak režima frekventnog brojača je "F". se ugasi i indikator će prikazati vrijednost izmjerene frekvencije u kilohercima.
Šema ulaznog drajvera frekvencijskog mjerača - digitalna vaga, prikazana je na slici:


Ako u trenutku uključivanja na ulazu frekventnog merača postoji izmereni signal, tada će, nakon uključivanja napajanja, upaliti znak frekventnog merača „F.“ na 1 sekundu, a zatim će se ugasiti van.
Da biste prešli na vreme merenja od 0,1 sek. ili 10 sekundi, morate pritisnuti ili dugme br. 1, ili istovremeno pritisnuti dugme br. 1 i dugme br. 2, respektivno (pogledajte raspored tastature za režim brojača frekvencije), zatim sačekajte da se promeni pozicija decimalne zapete i zatim otpustite dugme (dugmad). Ako se nakon toga treba vratiti na vrijeme mjerenja od 1 sekunde, tada je potrebno pritisnuti tipku br. 2 i sačekati promjenu položaja decimalnog zareza, a zatim otpustiti dugme. Za bilo koje vrijeme mjerenja, decimalna točka označava kiloherc.


Raspored tastature u režimu brojača

Dugme br. 1 0,1 sek. Promjena na vrijeme mjerenja 0,1 sek.
Dugme #2 1 sek. Promjena na vrijeme mjerenja 1 sek.
Dugme #1 +
dugme br.2 10 sek. Promjena na vrijeme mjerenja 10 sek.
(dugmad se pritiskaju istovremeno)

Ako se prije isključivanja napajanja radilo u digitalnom načinu rada, onda će se sljedeći put kada se napajanje uključi, ovaj način rada postavljen, a unutar moda digitalne skale, tačno podrežim („minus IF“ ili „plus IF“ ”) će biti postavljeno u kojem se radnju odvijalo do posljednjeg isključenja. Znakovi podmoda digitalne skale („L.“ odnosno „H.“) će biti stalno prikazani u lijevoj cifri indikatora. Ako nema signala na ulazu digitalne skale, indikator će pokazati vrijednost međufrekvencije pohranjene u memoriji kontrolera, a ako je prisutna, rezultat oduzimanja ili zbrajanja frekvencije signala prisutnog na ulazu digitalne skale i vrijednosti međufrekvencije snimljene u neizbrisivoj memoriji PIC kontrolera.


Režim digitalne skale ima 4 pod-moda.
- Kada pritisnete dugme br. 1, javlja se podrežim "minus IF".
- U ovom slučaju, u lijevoj cifri indikatora će biti prikazan znak podmoda "L."
- Kada pritisnete dugme br. 2, vrši se prelazak u podrežim "plus IF".
- U tom slučaju, u lijevoj cifri indikatora će biti prikazan znak podmoda "H."

U procesu "flešovanja" kontrolera, vrijednost međufrekvencije = 5,5 MHz upisuje se u njegovu nepromjenjivu memoriju, ali tada može samostalno upisati bilo koju vrijednost u nju i koristiti je kao međufrekvenciju. Da biste to učinili, potrebno je primijeniti vanjski signal na ulaz digitalnog signala s frekvencijom, koji će se zatim koristiti kao posredni. Možete kontrolirati vrijednost ove frekvencije prelaskom na način rada brojača frekvencije.

Raspored tastature u režimu numeričke skale:
Tasteri Mjerenje vremena Objašnjenja
Dugme br. 1 "minus IF" Od međufrekvencije se oduzima
izmjerena frekvencija
Dugme br. 2 "plus IF" Međufrekvencija se zbraja sa
izmjerena frekvencija
Dugme #1 +
tipka br. 2 IF postavka Write to RAM value
izmjerena frekvencija (IF)
Re:
Dugme #1 +
tipka br. 2 Write IF Kopiranje vrijednosti izmjerene frekvencije iz RAM-a u stalnu memoriju kako bi se dalje koristila kao međuproizvod


Kada promijenite način rada, mijenja se i raspored tastature. Ako je dugme br. 1 pritisnuto kraće od određenog vremena, tada se ne dešava prelazak na drugi režim i taster br. 1 može ili podesiti vreme merenja na 0,1 sek. (u režimu brojača frekvencije), ili uključite podrežim "minus IF" (u režimu digitalne skale). Ako se ovaj prag prekorači, dolazi do prelaska na drugi način rada. Vrijednost ovog praga je oko 4 sekunde, a ovaj vremenski interval se računa od kraja ciklusa brojanja u trenutku pritiska na tipku br. 1.


Možete smanjiti potrošnju energije kruga brojača frekvencije povećanjem vrijednosti otpornika koji povezuju pinove priključka B na indikator. U njegovom dizajnu koristio sam 9-cifreni LED indikator sa sovjetskog telefona sa AON-om, sa zajedničkom katodom i crvenim sjajem. U mom frekventnom meraču, pored mrežnog napajanja, postoji i baterija (akumulatori). Štampana ploča uređaja je prikazana na slici:


Firmware za mikrokontroler PIC16F84A, kao i cijeli tekst članka o kontroleru, preuzmite ovdje. Testirao sam kolo - ZU77.

Merač frekvencije predstavljen u ovom članku omogućava vam da izmerite frekvenciju od 10 Hz do 60 MHz sa tačnošću od 10 Hz. Ovo vam omogućava da koristite ovaj uređaj za širok spektar primena, kao što je merenje frekvencije glavnog oscilatora, radio prijemnika i predajnika, funkcionalnog generatora, kvarcnog rezonatora, itd. Frekventni merač pruža dobre parametre i ima dobar ulaz osjetljivost zbog prisutnosti pojačala i TTL pretvarača. Ovo vam omogućava da izmjerite frekvenciju kvarcnih rezonatora. Ako koristite opcioni djelitelj frekvencije, maksimalna frekvencija mjerenja može doseći 1 GHz ili više.

Ideja o mjeraču frekvencije na PIC mikrokontroleru došla mi je nakon čitanja Microchipove napomene o aplikaciji AN592, koja opisuje kako mjeriti frekvenciju na PIC-u i predstavlja program. Dizajnirao sam kolo i napisao program u kojem sam poboljšao tačnost mjerenja, a vrijednost frekvencije se prikazuje na LCD ekranu. Pokazalo se da je to prilično jednostavan i efikasan brojač frekvencija.

Krug mjerača frekvencije je prilično jednostavan, većinu funkcija obavlja mikrokontroler. Jedina stvar je da je mikrokontroleru potreban stepen za pojačavanje da bi se povećao ulazni napon sa 200-300 mV na 3 V. Tranzistor, povezan prema zajedničkom emiterskom kolu, daje pseudo-TTL signal na ulaz mikrokontrolera.

Potreban je neki "brzi" tranzistor kao tranzistor, koristio sam BFR91 (domaći analog KT3198V).

Napon Vke se postavlja na nivo od 1,8-2,2 volta otpornikom R3 * u krugu. Imam ga 10 kOhm, ali možda treba da se podesi. Napon sa kolektora tranzistora se dovodi na ulaz brojača/tajmera PIC mikrokontrolera, kroz serijski otpor od 470 oma. Za isključivanje mjerenja u PIC-u se koriste ugrađeni padajući otpornici.

PIC implementira 32-bitni brojač, dijelom u hardveru, dijelom u softveru. Odbrojavanje počinje nakon isključivanja ugrađenih padajućih otpornika mikrokontrolera, a trajanje je tačno 0,4 sekunde. Nakon ovog vremena, PIC dijeli primljeni broj sa 4, a zatim dodaje ili oduzima odgovarajuću međufrekvenciju kako bi dobio stvarnu frekvenciju. Primljena frekvencija se konvertuje za prikaz na displeju.

Kalibracija

Da bi frekvencijski brojač radio ispravno, potrebno ga je kalibrirati. Najlakši način da to učinite je da unaprijed povežete izvor impulsa s točno poznatom frekvencijom i postavite potrebna očitanja rotacijom kondenzatora trimera.

Ako ova metoda nije prikladna, onda možete koristiti "grubu kalibraciju". Da biste to učinili, isključite napajanje uređaja i povežite 10. nogu mikrokontrolera na GND. Zatim uključite napajanje. MK će izmjeriti i prikazati internu frekvenciju. Ako ne možete podesiti prikazanu frekvenciju (podešavanjem kondenzatora od 33 pF), onda trenutno spojite pin 12 ili 13 MK na GND. Moguće je da će to biti potrebno uraditi nekoliko puta, jer. program provjerava ove izlaze samo jednom po mjerenju (0,4 s). Nakon kalibracije, odspojite 10. pin mikrokontrolera iz GND-a, bez isključivanja napajanja uređaja, kako biste sačuvali podatke u trajnoj memoriji MK-a.

Lista radio elemenata

Oznaka Tip Denominacija Količina BilješkaProdavnicaMoja beležnica
MK PIC 8-bit

PIC18F84J11

1 U notes
Linearni regulator

LM7805

1 U notes
TranzistorBFR911 U notes
ispravljačka dioda

1N4007

1 U notes
Kondenzator1 uF1 U notes
10uF1 U notes
elektrolitički kondenzator1 uF1 U notes
Kondenzator0.1uF1 U notes
Kondenzator33 pF1 U notes
Trimer kondenzator33 pF1 U notes
Otpornik

470 ohma

2 U notes
Otpornik

10 kOhm

1 Odabir U notes
Otpornik

10 kOhm

1 U notes
Varijabilni otpornik10 kOhm2

Ova lekcija će biti prilično jednostavna. Nadam se da ste dobro naučili prethodne materijale: lekciju o tajmerima i kontrolama dugmadi.

Da biste razumjeli zašto su vanjski prekidi potrebni, dat ću jednostavan primjer: recimo da koristite kašnjenja u glavnoj programskoj petlji (na primjer, za treptanje LED diode), dok trebate upotrijebiti tipku da prebacite LED u drugi način rada . Ako je obrada gumba u glavnoj petlji, tada ćete morati pričekati dok se svi fragmenti koda ne obrađuju i red stigne do obrade gumba. Ponekad to nije zgodno.

Stoga su mikrokontroleri smislili tako zgodnu stvar kao što je vanjski prekid. To znači da kada se signal primijeni na pin mikrokontrolera, glavni program će se zaustaviti i kod koji upišete u funkciju prekida će početi da se izvršava. Nakon izvršenja ove funkcije, glavni program će nastaviti da se izvodi od mjesta gdje je prekinut.

Broj pinova dodijeljenih za eksterne prekide ovisi o vrsti mikrokontrolera, na primjer, atmega8 ih ima 2, atmega16 ima 3. Zovu se INT0, INT1, itd.

Prekid se može pokrenuti porastom signala Rise edge, padom Falling edge, bilo kojom promjenom Bilo kojom promjenom, Niski nivo niskim nivoom. U čarobnjaku to izgleda ovako:

Sada razmotrite, kao primjer, neobičnu upotrebu eksternog prekida - brojača frekvencije.

Recimo da se pulsirajući signal primjenjuje na pin konfiguriran za vanjski prekid. U skladu s tim, svaki period će pokrenuti prekid, njihov broj možemo izbrojati samo u jednoj sekundi.

Da biste to učinili, podesite tajmer 1 da se aktivira 1 put u sekundi, kao u lekciji 5. Kada se aktivira prekid tajmera, resetujemo brojač i prikazujemo rezultat na displeju.

#include // Funkcije alfanumeričkog LCD modula#asm .equ __lcd_port= 0x18 ; PORTB #endasm #include #include unsigned long i = 0, freq= 0; char lcd_buf[ 33 ] ; prekid [ EXT_INT0] void ext_int0_isr(void) ( i++; ) prekid [ TIM1_COMPA] void timer1_compa_isr(void) ( freq= i; i= 0 ; TCNT1H= 0x00 ; TCNT1L= 0x00 ; TCNT1L= 0x00 ; // Ovdje deklarirajte svoje lokalne varijable // Inicijalizacija ulaznih/izlaznih portova// Inicijalizacija porta B // Func7=U Func6=U Func5=U Func4=U Func3=U Func2=U Func1=U Func0=U // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00 ; DDRB=0x00 ; PORTD=0xFF ; DDRD=0x00 ; // Inicijalizacija tajmera/brojača 1// Izvor sata: Sistemski sat // Vrijednost sata: 7,813 kHz // Način rada: Normalni vrh=FFFFh // OC1A izlaz: Discon. // OC1B izlaz: Diskon. // Poništaj buke: Isključeno // Snimanje ulaza na padajućem rubu // Prekid prekoračenja tajmera 1: Isključeno // Prekid hvatanja ulaza: Isključeno // Usporedi prekid podudaranja: uključen // Usporedi B Match Interrupt: Isključeno TCCR1A=0x00 ; TCCR1B=0x05 ; TCNT1H=0x00 ; TCNT1L= 0x00 ; ICR1H=0x00 ; ICR1L=0x00 ; OCR1AH=0x1E ; OCR1AL=0x85 ; OCR1BH=0x00 ; OCR1BL=0x00 ; // Inicijalizacija eksternog prekida// INT0: uključeno // INT0 način rada: rastući rub // INT1: isključeno GICR|= 0x40 ; MCUCR=0x03 ; GIFR=0x40 ; // Inicijalizacija prekida(a) tajmera/brojača(ova). TIMSK=0x10 ; // Globalno omogućavanje prekida #asm("sei") lcd_init(8) ; dok (1) (sprintf (lcd_buf, "freq=%d", freq) ; lcd_gotoxy(0, 0) ; lcd_puts(lcd_buf) ;) ; )

#include // Alfanumeričke funkcije LCD modula #asm .equ __lcd_port=0x18 ;PORTB #endasm #include #include unsigned long i = 0, freq=0; char lcd_buf; interrupt void ext_int0_isr(void) ( i++; ) interrupt void timer1_compa_isr(void) ( freq=i; i=0; TCNT1H=0x00; TCNT1L=0x00; ) void main(void) ( // Deklarirajte svoje lokalne varijable ovdje // Unos /Inicijalizacija izlaznih portova // Inicijalizacija porta B // Func7=U Func6=U Func5=U Func4=U Func3=U Func2=U Func1=U Func0=U // State7=T State6=T State5=T State4=T State3 =T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; PORTD=0xFF; DDRD=0x00; // Inicijalizacija tajmera/brojača 1 // Izvor sata: sistemski sat // Vrijednost sata: 7,813 kHz // Način rada: Normalni vrh=FFFFh // OC1A izlaz: Diskon. // OC1B izlaz: Diskon. // Poništavač buke: Isključen // Snimanje ulaza na opadajućoj ivici // Prekid preljeva tajmera 1: isključen // Prekid snimanja ulaza: isključen // Usporedi A Match Interrupt: Uključen // Usporedi B Prekid podudaranja: Isključen OCR1BL=0x00 // Inicijalizacija eksternog prekida // INT0: Uključen // INT0 način rada: Rising Edge // INT1: Isključeno GICR|=0x40; MCUCR=0x03; GIFR=0x40; // Inicijalizacija tajmera/brojača Interrupt(s) TIMSK=0x10; // Globalno omogućavanje prekida #asm("sei") lcd_init(8); while (1) ( sprintf(lcd_buf,"freq=%d",freq); lcd_gotoxy(0,0); lcd_puts(lcd_buf); ); )