Interrupt

N

narithota

Guest
Hoi

Kan ik GOTO verklaring in interrupt routine?

Voorbeeld code is:

# include <REG51.H>

void ex0_isr (void) onderbreken 0
(

goto next;

)

void main (void)

(

IT0 = 1; / / Configure onderbreken 0 voor dalende flank op / INT0 (P3.2)
EX0 = 1; / / Enable EX0 Interrupt
EA = 1; / / Enable Global Interrupt Vlaggenstaat

While (1)
(
; / * Goed onderbreken optreden in deze lus na dat zij goto naar de volgende lus * /

)NEXT while (1)

(

;;

)

)
Normaal onderbreken goed optreden in een lus na excuting de interrupt service routine

Nogmaals het goed komen dezelfde loop.But mijn gebruik is onderbreken moet komen in een lus na dat zij goto naar de volgende lus die is waarom hier iam met GOTO staat ment.

Mijn compiler toont braaklegging fout:INTEREX1CODE.C (14): error C233: 'NEXT': undefined label

Bedankt

Groeten
Nari

 
Hi Nari,

probeer dan een dubbele punt na de volgende label
Code:NEXT while (1) / / <--- Hier de dubbele punt ':' na volgend ontbreekt(;;)

 
Salam

Nee, je kunt geen GOTO-instructie om naar gebied buiten onderbreken ISR.omdat de interrupt actief zal zijn voor eeuwig zal niet terugkeren naar ISR voor een goede eindigt (bijvoorbeeld pop de opgeslagen registers van stack die hen opgeslagen voordat omgaan met uw ISR)

In plaats daarvan kunt u bellen functioneren binnen ISR bepaalde job te doen en terug te keren naar ISR.

OPMERKING: Uw ISR moet klein zijn en snel mogelijk als je kan.

Dag

 
sfinx is absoluut recht in deze ....

Quote:

omdat de interrupt actief zal zijn voor eeuwig zal niet terugkeren naar ISR voor een goede eindigt (bijvoorbeeld pop de opgeslagen registers van stack die hen opgeslagen voordat omgaan met uw ISR)
 
U kunt ook een vlag in de ISR en vervolgens nagaan of het in de grote lus

Fire in the Wire

<img src="http://www.edaboard.com/images/smiles/icon_idea.gif" alt="Idea" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top