5. lecke

„Frequency” Mielőtt elindul felfedezni az időzítő határozza meg az alap koncepció. Leegyszerűsítve az ismétlések száma másodpercenként. Ez azt jelenti, hogy ha van egy második tapsol kezét kétszer, majd becsapja az frekvencia egyenlő lesz 2 Hz. Ha 3-szor, majd 3 Hz.






Minden mikrokontroller működik egy adott frekvencián. A legtöbb végrehajtott utasítások órajelenként, így minél nagyobb a frekvencia, annál gyorsabb a mikrokontroller fut. Ha nincs órajel forrásra, illetve nem fog működni semmit. Abban az esetben nincs külső órajel forrás, a legtöbb mikrokontroller saját belső oszcillátor. Általában „gyári” felállás.

Belső frekvencia forrás változhat ( „float”) miatt a hőmérséklet, stb Ezért számára nem megfelelőnek ítélt komoly projektek, és mi van valójában az ilyen használat tehát stabil forrás külső frekvencia - kvarckristály (kvarc). Az egyik változata a kvarcrezonátor teljesítmény:

5. lecke

Most valamit az időzítőt. Az időzítő működik ugyanazon a frekvencián, mint a mikrokontroller. Néha lehet nagyon gyors, ezért használja a előosztóval amely csökkenti a kullancsok 8/64/256/1024 ... megint. Mindez benne van a szoftverben.

Tegyük fel, úgy döntöttünk előosztó 1024 mikrokontroller frekvencia 8 MHz, majd miután az időzítő előosztó arány lesz:
8 000 000/1024 = 7813 Hz - gyakorisággal, amely működik a stoppert. Egyszerű szavakkal, egy második időmérő tiknet 7813 alkalommal.

De itt párosított ezeket a 2 értéket, és mi a következő lépés? Ehhez van egy hasznos dolog, mint egy megszakítás véletlen. Ez azt jelenti, hogy a véletlen az időzítőt, és hasonlítsa össze regisztrálja, a jelenlegi program leáll. Futtassa a kódot rész, amely egyáltalán nem kapcsolódik a fő program. Belül ez a rész írhat bármit, amit akar, és nem kell aggódnia, hogy milyen érzés, hogy érinti a végre, csak ha az időzítő értéke megegyezik az összehasonlító regiszter.







Miután a megszakítás kódvégrehajtáskor, a program továbbra is működni fog attól a ponttól, ahol abbahagyta. Így akkor rendszeresen átvizsgálja gombot, hogy a hossza megnyomásával, hogy az intézkedés a pontos időközönként. Kedvenc kérdés kezdődik, mint én, és a LED-vaku, hogy valami mást. Szóval, ez segít a stoppert és a megszakításokat.

Most már készen állunk, hogy megírjam a programot. Ezért létre egy projektet az Project varázsló. Miután a pótkocsi LCD, mi is már tudja, hogy van ez).

5. lecke

Menj a Időzítők fülre, majd fejtette ki részletesebben:

5. lecke

Válassza ki a 7813 ráta, és állítsa be a jelet ellen tétel Interrupt on: Összehasonlítás a mérkőzés. Így azt jelezte, hogy a véletlen értékek elvégzésére egy megszakítást (vagyis amit már fentebb leírt). Megszakítás elvégzi 1 másodpercenként, azaz a szükségünk tiknut 7813-szer, így lefordítani száma 7813, a hexadecimális és kap 1e85. Ennyi, és írásban a nyilvántartásba összehasonlítások Comp A. összehasonlító regiszter Comp 16 bites, így a szám nagyobb, mint 2 ^ 16 = 65536 nem tudunk írni.

Mi gerjeszt, ne tisztítsa ki a kódot. Lesz egy új homályos kódrészletet

// Timer 1 kimenet össze egy ISR
szakítsa [TIM1_COMPA] void timer1_compa_isr (void)

Ez ugyanazt a megszakítást. Ez ezekben a konzolok, akkor írjuk be a kódot, hogy azt akarjuk, hogy végezzen rendszeres időközönként. Mi egy másodpercig. Tehát logikus, hogy létrehozunk egy változót, hogy növeli 1 másodpercenként, azaz a 1 alkalommal egy megszakítás. Ezért inicializálni a változó int s = 0; és annak megszakítása növeli 0 59. A változó értékét jelenik meg az LCD kijelzőn. Nem trükk, minden nagyon egyszerű.
A kapott kódot.

kiindulnia nem 7,813kGts és 8 MHz. Általában én vagyok megvitatása nem mindig ez a helyzet. Úgy vélem, a maximális frekvenciát. Keresünk neki időszakban. 1/8000 000 = ,000000125 másodperc. Ez az időtartam egy kullancs. Nézd, mennyire a megfelelő szegmensben kullancsok 10mks = 0,00001 másodperc 0,00001 / ,000000125 = 80 kullancsok a max frekvencia 10mks. Ez normális összehasonlító regiszter. Ha már több, mint 255 vagy 65535 (attól függően, hogy az időzítés), akkor az ember azt kell nézni a következő előosztóval.

Helló, hogyan juthat hozzá a késleltetés másodpercben -delay_s (10) például. Esküszöm felmérésében és meg kell használni ms, nekünk ....




Kapcsolódó cikkek