Fórum témák
» Több friss téma |
Cikkek » SRF-04 Ultrahangos távolságmérő szenzor használata Arduino-val és AVR-rel SRF-04 Ultrahangos távolságmérő szenzor használata Arduino-val és AVR-rel
Szerző: Fizikus, idő: Dec 7, 2011, Olvasva: 28737, Oldal olvasási idő: kb. 2 perc
Timer1 Input Capture működési mód Az Input Capture mód a 16 bites Timer egyik speciális funkciója, amely az ICP1 (PB0) lábon érkező külső jelet használja arra, hogy a számláló pillanatnyi értékét az ICR1 Input Capture regiszterbe írja, és amikor létrejött az input capture esemény, egy megszakítást is generál (ICF1). Ha az ICP1 lábon, egy kiválasztott átmenet következik be (fel- vagy lefutó él), akkor a Timer1-hez tartozó TCNT1 számlálóregiszter pillanatnyi értéke az Input Capture regiszterbe (ICR1) íródik. Ezzel egy időben a TIFR regiszterben az ICF1-es állapotjelző bit értéke is 1 lesz. Ha a TIMSK megszakítás maszk regiszterben a TCIE1 bit értéke 1, akkor ez az állapotváltozás megszakítást is generál. És amint azt a későbbiekben látni fogjuk, ezt külső impulzusok időtartamának (szélességének) mérésére tudjuk felhasználni. TCCR1B: Ez a regiszter a Timer-t meghajtó órajelimpulzusok és az Input Capture működési módok beállítására szolgál. ICNC1: Input Capture zavarszűrés. A Timer1 rendelkezik egy un. input capture zavarszűrő móddal, ami a bejövő jelre rakódó esetleges zaj tüskéit igyekszik kiszűrni azáltal, hogy négy órajelciklusig vizsgálja a bejövő jelet, hogy megbizonyosodjon róla valódi állapotváltozás történt. Ha az ICNI1 bit értékének 1-et adunk, akkor a zavarszűrés be van kapcsolva. Ekkor az ICP(PB0) lábon az input capture négy ugyanolyan minta beérkezte után lesz aktiválva. Az hogy fel vagy lefutóél aktiválja-e az input capture-t az ICES1 bittel állítható be. ICES1: Input Capture eseményt kiváltó állapotváltozás kiválasztására szolgál (fel vagy lefutóél aktiválja-e az input capture-t). 0-ás érték esetén a TCNT1 számlálóregiszter értékét az ICP lábon lévő jel lefutó élére írja be az Input capture regiszterbe (ICR1). 1-es érték esetén pedig a jel felfutó élére. CS12..10: Órajelkiválasztó bitek. Ezekkel állítható be a Timer1 számlálójának előosztása az alábbi táblázatnak megfelelően: ICR1 (ICR1H és ICR1L): Input Capture regiszter. A külső Input Capture lábon (ICP – PB0) érkező impulzusok közötti jel mérésére szolgál. Az hogy ez a láb hogyan kapcsolódjon az ICR regiszterhez, a TCCR1B regiszterben állítható be az ICNC és ICES bitekkel. Ha az ICP lábon a beállítottnak megfelelő átmenet érkezik (fel vagy lefutó él), a Timer TCNT1 számláló regiszterének a tartalma az ICR1 regiszterbe íródik és egy megszakítás jön létre, ha ez a TIMSK regiszterben a TCIE1 bittel engedélyezve van. TIMSK és TIFR: A TIMSK Timer megszakítás maszk regiszterrel vezérelhetjük hogy mely megszakítások legyenek aktívak (a nekik megfelelő bitek beállításával engedélyezhetőek). A TIFR Timer megszakításjelző regiszterben pedig a megszakítások végrehajtásának állapotait követhetjük nyomon. TOIE1: Timer1 túlcsordulás megszakítást engedélyező bit OCIE1A és OCIE1B: Output Compare megszakítást engedélyező bit TICIE1: Timer1 Input capture megszakítás engedélyezése. Ha értéke 1, és a globális megszakítások is engedélyezve vannak, akor a mikrovezérlő egy Input Capture esemény bekövetketekor az Input Capture megszakítást kiszolgaló rutinra mutató vektorhoz ugrik. TIFR: ez a regiszter nem feltétlenül szükséges a timerek használatához. Ebben a regiszterben a megszakításokhoz tartozó jelzőbitek vannak. Ha egy megszakítás nincs engedélyezve (a hozzá tartozó esemény bekövetkezik, megszakításkérést generál, de nem vált ki megszakítást), az AVR-en futó program a TIFR regiszter adott bitjének vizsgálatával ellenőrizheti hogy adott esemény bekövetkezett-e, és ha igen, akkor törölheti a jelzőbitet (a TIFR regiszterben egy jelzőbit törlése úgy lehetséges, ha értékének 1-et adunk.) ICF1: Timer1 Input Capture esemény bekövetkeztét jelző bit TOV1: Timer1 túlcsordulást jelző bit OCF1A és OCF1B: Output Compare jelzőbitek (akkor jelez, ha a Timer1 számlálóregiszterének az értéke megegyezik az Output Compare A / B regiszterek értékével ). TCNT1 (TCNT1H és TCNT1L): A Timer1 számláló regisztere. A processzortól függetlenül automatikusan számlál a rendszerórajel előosztás mértékének megfelelően csökkentett ütemére. A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |