Montáž Jazyk na PIC 16F872 (Přerušení)

S

scdoro

Guest
Ahoj,
Mám určité pochybnosti o programování PIC 16F872 pomocí assembleru.
1) Může program mít více než jeden přerušení?Pokud ano, mohu vědět, jak nastavit prioritu?tak, aby dvě přerušení nebude v rozporu dohromady?
2) na beinging programu
org 0x000
goto start; přeskočit umístění, na níž odkazuje
; Vektor přerušení
org 0x004
goto iserv
Pokud existuje více než jedno přerušení, musím přidat další příkaz k výše uvedenému vektoru?
3) dva může přerušit stát ve stejnou dobu?jak překonat tento?
4) můžeme volat podprogram (volání funkce) v přerušení provozu rutinní?

Díky moc za pomoc

 
Ahoj,

existuje pouze jedna priorita přerušení na řadu PIC16 pouze PIC18 série má dvě priority přerušení ...

1) váš program může mít tolik přerušuje jako vaše PIC podporuje, ale nelze nastavit priority a můžete také nic udělat, aby se zabránilo několik interrups spuštění ve stejnou dobu.

2) Ne, pokud to není podporováno PIC16

3) jakékoli přerušení může dojít ve stejnou dobu, po kterou nemůže dělat nic proti tomuto

4) Ano, můžete volat funkci během přerušení, ale měli byste zkusit se to udělat, protože to přidává další zásobník na úrovni (a PIC16 pouze osm úrovní), a bude také oddálit svůj přerušení odpověď.Je godd nápad, aby přerušení podprogram co nejkratší.

Chcete-li podpořit více interrups budete muset udělat přerušení handler takto (Hi-Tech C):

neplatné přerušení ISR (void)
(
if (RCIF)
(
)

if (TMR2IF)
(
)
)

Nezapomeňte na jasné přerušení vlajka, která byla příčinou vašeho přerušit, pokud není provedeno automaticky hardware jinak budete uvízl uvnitř vašeho přerušení rutinní navždy

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsměv" border="0" />doufám, že to pomůže a pozdravem

 
Citace:

1) Může program mít více než jeden přerušení?
Pokud ano, mohu vědět, jak nastavit prioritu?
tak, aby dvě přerušení nebude v rozporu dohromady?2) na beinging programu

org 0x000

goto start; přeskočit umístění, na níž odkazuje

; Vektor přerušení

org 0x004

goto iserv

Pokud existuje více než jedno přerušení, musím přidat další příkaz k výše uvedenému vektoru?
 

Welcome to EDABoard.com

Sponsor

Back
Top