Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako vykonal program prerušenia časovača?

Vykonanie programu prerušenia časovača je vyvolané hardvérovým časovačom, ktorý dosiahne preddefinovanú hodnotu. Tu je rozpis procesu:

1. Nastavenie hardvérového časovača:

* Inicializácia: Časovač je inicializovaný špecifickou hodnotou (počet) predstavujúcim požadovaný časový interval. To by mohlo zahŕňať nastavenie registrov v hardvéri časovača. Časovač tiež potrebuje nakonfigurovaný režim (napr. Jednoraz na jediný spúšťač, periodický pre opakované prerušenia).

* Zdroj hodín: Časovač je pripojený k zdroju hodín (napr. Systémové hodiny). Tieto hodiny zvyšujú počítadlo časovača.

2. Generovanie prerušenia časovača:

* counter dosahuje nulu: Keď sa hodiny zvyšujú počítadlo časovača, nakoniec dosiahne nulu (alebo zadaný počet terminálov). Táto udalosť spúšťa signál prerušenia hardvéru.

* Prerušenie žiadosti (IRQ): Hardvérový časovač odošle procesor žiadosť o prerušenie (IRQ). Táto žiadosť signalizuje, že udalosť si vyžaduje okamžitú pozornosť.

3. Prerušenie manipulácie pomocou CPU:

* prerušenie potvrdiť: CPU uznáva prerušenie a pozastaví jeho súčasné vykonanie. Priorita prerušenia časovača určuje, či sa s ním zaobchádza okamžite alebo po prerušení vyššej priority.

* kontext ukladania: CPU uloží stav aktuálneho programu (registre, počítadlo programu atď.) Do zásobníka. To je rozhodujúce pre obnovenie vykonávania neskôr.

* prerušenie vektorovej tabuľky: CPU konzultuje vektorovú tabuľku prerušenia na lokalizáciu adresy pamäte rutiny prerušenia (ISR) spojenej s prerušením časovača.

* Skok na ISR: CPU preskočí na umiestnenie pamäte ISR prerušenia časovača.

4. Vykonanie rutiny prerušenia služieb (ISR):

* ISR kód: Toto je špecifický kód navrhnutý na zvládnutie prerušenia časovača. Jeho úlohy môžu zahŕňať:

* Aktualizácia počítadla: Sledujte uplynutý čas.

* Prepnutie výstupu: Ovládanie LED alebo iného periférneho zariadenia.

* Plánovanie úloh: Vykonávanie ďalších funkcií programu v konkrétnych intervaloch.

* čítanie senzorov: Vzorkovacie údaje zo senzorov v pravidelných intervaloch.

* komunikácia: Odosielanie/prijímanie údajov cez sieť alebo sériový port.

* Neustále to: ISRS by sa mal udržiavať čo najkratšie, aby sa minimalizoval čas, ktorý je prerušený hlavný program. Dlhodobé úlohy by sa mali vyložiť do hlavného programu po tom, ako ISR nastaví príznak alebo aktualizuje zdieľanú štruktúru údajov.

5. Návrat z prerušenia:

* Obnovenie kontextu: ISR obnovuje stav procesora, ktorý bol uložený skôr (registre, programové počítadlo atď.).

* Návrat z prerušenia (IRET alebo RTI): Osobitná inštrukcia (IRET alebo RTI, v závislosti od architektúry) sa vykonáva, aby sa vrátila kontrolu k hlavnému programu. CPU obnoví vykonanie, odkiaľ pred prerušením prerušilo.

Príklad (koncepčný kód podobný C):

`` C

// časovač ISR

void timer_isr () {

statické nepodpísané int counter =0; // počítadlo pre sledovanie času

Counter ++;

if (counter ==1000) {// Skontrolujte, či došlo k prerušeniam časovača

počítadlo =0;

// Vykonajte určitú akciu, napr. Prepnite LED

toggle_led ();

}

}

`` `

Dôležité úvahy:

* prerušenie latencie: Čas potrebný medzi žiadosťou o prerušenie a začiatkom ISR je latencia prerušenia. Je nevyhnutné, aby ste si udržali toto nízke pre aplikácie v reálnom čase.

* prerušenie priorít: Súčasne sa môže vyskytnúť viacero prerušení. CPU ich rieši na základe ich priradených priorít.

* reentrant: ISRS musí byť reentrant; čo znamená, že ich môžu byť znova prerušené pred dokončením vykonávania bez toho, aby spôsobili korupciu údajov.

* Zdieľané zdroje: Ak sú prístupy k zdieľaniu zdrojov ISR, ktoré používajú aj hlavný program, sú potrebné starostlivé synchronizačné mechanizmy (napr. Semafory, mutexes).

Tento proces sa vzťahuje na širokú škálu mikrokontrolérov a zabudovaných systémov. Konkrétne podrobnosti (názvy registrov, pokyny) sa budú líšiť v závislosti od hardvérovej architektúry.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené