Interruptions PIC

N

neoaspilet11

Guest
Bonjour à tous,

S'il vous plaît examiner cette affaire:

1.) Supposons que le contrôle du programme est actuellement un traitement d'interruption de service causée par TMR0 débordement, peu GIE est désactivée.

2.) Au cours de TMR0 débordement d'interruption de service, une interruption externe sur RB0 eu lieu, c'est un front montant a eu lieu et RB0 est élevé - ce qui cause la INTCON, peu INTF à HIGH.

3.) Le TMR0 débordement Interrompre le service est terminé, TMR0IF est effacée et le GIE est de nouveau sur SET.Après les sorties programme de contrôle de la routine de service d'interruption, sera l'externe soit d'interrompre l'entretien?Prenez note que le front montant à RB0 déjà eu lieu et INTF est élevé déjà après retfie de débordement TMR0 interruption de service.

Merci pour vos idées.

 
Salut,

De la fiche technique PIC16F877A, page 153:
Citation:

mondiale interrompre bit de validation, le GIE (INTCON <7>),

permet (si activé) toutes les interruptions démasqué ou désactive (sidésactivée) toutes les interruptions. Lorsque GIE bits est activé et un

interruption peu drapeau et de bits du masque sont fixés, l'interruptionvecteur immédiatement.
 
Je pense que dès que le GIE est fixé à nouveau, vous obtiendrez dans le service d'interruption de routine à nouveau ...

 
pour les idées Merci les gars,

Mon application utilise deux sources d'interruption, l'un de l'extérieur - un front montant à RB0 et le débordement de TMR0.Le TMR0 n'est pas pré échelle de sorte qu'il sera incrémenté à chaque cycle de l'enseignement et la PIC877A je tourne à 20 MHz.Ainsi donc il est très probable que toute interruption a été causée par le débordement et le TMR0 interruption externe a peu de chances d'être déclenchés.

J'ai fait exprès Cleared GIE au début de la saison d'interruption causée par débordement de TMR0 ou interruption externe à simflipy le déroulement du programme et de codage.J'ai pensé à la solution la nuit dernière.Et c'est alors que se produit une interruption TMR0 soit à partir de débordement ou un déclenchement externe sur RB0, je dois sondage INTCON première INTF de voir est INFT est HIGH.Elle, si ce n'est donc pas de service le débordement TMR0.Ensuite, j'ai remarqué que quand un déclencheur externe qui s'est passé pendant TMR0 débordement service, INTCON, drapeau INTF sera élevé.Ainsi, lorsque, après dépassement TMR0 entretien, même si le MPU ne RB0 service ne interrompre, au débordement de TMR0 prochain, la routine d'interruption de service sera forcé d'exécuter RB0 service d'interruption en raison INTCON, INTF est HAUTE contournant ainsi TMR0 d'interruption de service!

Encore une fois, je vous remercie pour les idées
Jack

 

Welcome to EDABoard.com

Sponsor

Back
Top