Dobry den.
Dokazal by mi niekto vysvetlit, aky je hardverovy rozdiel medzi Eventom a Interuptom?
Vo ziadnom katalogovom liste od STM32 som to nenasiel.
Napriklad Citac vyvola udalost:
- Interupt - odskoci z hlavneho programu na rutinu
- DMA - z pamate si vytiahne pozadovane udaje a nastavy si svoje registre.
- Event - ? Urcite zdvihne vlajku v registri ze prebehol Event od citaca. Ale to robi aj Interupt, ked je zakazane prerusenie.
Dakujem
Event vs. Interupt
Moderátori: psichac, Moderátori
-
- Stály člen
- Príspevky: 242
- Dátum registrácie: 08 Máj 2014, 23:09
- Bydlisko: Nam. Sv. Martina 24, Lipany
- niki31
- Stály člen
- Príspevky: 172
- Dátum registrácie: 05 Feb 2010, 00:00
- Bydlisko: Žilinský kraj
- Vek: 49
Re: Event vs. Interupt
INTERRUPT - je prerušenie procesora môže byť hardwarové alebo softwarové. Pri vyvolani prerušenia sa preruší vykonavanie programu, skočí sa na obsluhu prerušenia, ktorá musí začínať na presne určenej adrese. Po ukončení obsluhy sa pokračuje opäť vo vykonávaní programu presne na mieste kde sa vykonávanie programu prerušilo.
Event - je udalosť. Udalosť može byť takisto hardwarová alebo softwarová. Je to napr. zhoda čísla v CCP module, vypršanie časovača, stlačenie tlačítka. To ako bude obslúžená je len na programátorovi, udalosť môže obslužiť vlastnou rutinou,prerušením alebo nechať bez povšimnutia. Obsluha sa môže nachádzať kdekoľvek v pamäti.
Príklad: v CCP module sa porovnávajú čísla, pri zhode nastáva udalosť "ZHODA" tá nastaví príznak podľa ktorého procesor vie že nastala udalosť.
Ak je modul nastavený na vyvolanie prerušenia, preruší sa program a skočí sa na adresu vektora prerušenia kde sa nachádza program ktorý vykoná čo je potrebné. Ak nieje prerušenie povolené potom musí program periodicky ohmatávať príznak, ak sa zistí že bol príznak nastavený môže vyvolať podprogram pre obsluhu a pod.
Hlavný rozdiel je aj v rýchlosti a dĺžke obsluhy. V prerušení musí byť obsluha čo najkratšia, je veľmi rýchla a hlavne synchrónna. Kdežto obsluha udalosti môže byť ľubovoľne dlhá, kdekoľvek v pamäti a jej vykonanie býva spravidla relatívne asynchrónne.
Event - je udalosť. Udalosť može byť takisto hardwarová alebo softwarová. Je to napr. zhoda čísla v CCP module, vypršanie časovača, stlačenie tlačítka. To ako bude obslúžená je len na programátorovi, udalosť môže obslužiť vlastnou rutinou,prerušením alebo nechať bez povšimnutia. Obsluha sa môže nachádzať kdekoľvek v pamäti.
Príklad: v CCP module sa porovnávajú čísla, pri zhode nastáva udalosť "ZHODA" tá nastaví príznak podľa ktorého procesor vie že nastala udalosť.
Ak je modul nastavený na vyvolanie prerušenia, preruší sa program a skočí sa na adresu vektora prerušenia kde sa nachádza program ktorý vykoná čo je potrebné. Ak nieje prerušenie povolené potom musí program periodicky ohmatávať príznak, ak sa zistí že bol príznak nastavený môže vyvolať podprogram pre obsluhu a pod.
Hlavný rozdiel je aj v rýchlosti a dĺžke obsluhy. V prerušení musí byť obsluha čo najkratšia, je veľmi rýchla a hlavne synchrónna. Kdežto obsluha udalosti môže byť ľubovoľne dlhá, kdekoľvek v pamäti a jej vykonanie býva spravidla relatívne asynchrónne.
0
Niki31
-
- Stály člen
- Príspevky: 242
- Dátum registrácie: 08 Máj 2014, 23:09
- Bydlisko: Nam. Sv. Martina 24, Lipany