Vergadering Taal op PIC 16F872 (Interrupts)

S

scdoro

Guest
Hoi,
Ik heb wat twijfels over programmeertaal PIC 16F872 met behulp van assembler.
1) Kan een programma meer dan een interrupts?Zo ja, mag ik weten hoe u prioriteit?zodat twee onderbreken zullen niet bij elkaar botsen?
2) op de beinging van een programma
org 0x000
goto start; overslaan plaats die wordt aangewezen door
; Interruptvector
org 0x004
goto iserv
als er meer dan een onderbreken, moet ik toe te voegen in een andere opdracht om de bovenstaande vector?
3) kan twee onderbreken gebeuren op hetzelfde moment?hoe te overwinnen?
4) kunnen we een subroutine (call-functie) in een interrupt service routine?

Thanks a lot voor de hulp

 
Hoi,

er is slechts een prioriteit onderbreken op de PIC16-serie PIC18 serie heeft twee prioriteiten onderbreken ...

1) het programma kan zo veel interrupts als je PIC ondersteunt, maar u kunt geen prioriteit en je kunt ook niets om een paar interrups triggering op hetzelfde moment te voorkomen.

2) nee als dit wordt niet ondersteund met PIC16

3) Elke interrupt kan gebeuren op hetzelfde moment kun je niets doen tegen deze

4) ja u kunt bellen tijdens een functie onderbreken, maar je moet proberen dit niet te doen, want het voegt wel een stapel niveau (en PIC16 slechts acht niveaus), en het zal ook onmiddellijk uw reactie onderbreken.Het is een godd idee om de interrupt subroutine zo kort mogelijk.

Ter ondersteuning van meerdere interrups u hoeft te doen een interrupt handler als deze (Hi-Tech C):

isr void interrupt (void)
(
if (RCIF)
(
)

if (TMR2IF)
(
)
)

Vergeet niet om duidelijk de interrupt vlag die werd veroorzaakt uw onderbreken indien dit niet automatisch gedaan door de hardware anders wordt u vast in uw interruptroutine forever

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Lachten" border="0" />hoop dat dit helpt en groeten

 
Quote:

1) Kan een programma meer dan een interrupts?
Zo ja, mag ik weten hoe u prioriteit?
zodat twee onderbreken zullen niet bij elkaar botsen?2) op de beinging van een programma

org 0x000

goto start; overslaan plaats die wordt aangewezen door

; Interruptvector

org 0x004

goto iserv

als er meer dan een onderbreken, moet ik toe te voegen in een andere opdracht om de bovenstaande vector?
 

Welcome to EDABoard.com

Sponsor

Back
Top