rb0 pic interuupt

S

Sush

Guest
Salut je suis faite Mesure de fréquence. m en utilisant un oscillateur interne et externe interruption est sur la broche RB0.il m est le problème obtenir isnt contrôleur de détecter interruption externe provenant d'un générateur d'ondes carrées, tous motifs suggéré?
Dernière édition par Sush le 26 Fev 2006 20:56, édité 1 fois au total

 
Je pense qu'il devrait détecter l'interruption.
Toutefois, je ne sse pas où vous sauver / restaurer le registre d'état dans l'ISR.Peut-être que les causes des problèmes plus tard dans le code et le fait ressembler à elle n'avait pas décelé une interruption.

S'il vous plaît voir la page 109 de la fiche technique (exemple 14-1) pour la bonne façon d'économiser de rétablir le W et registres de l'état.Il suffit de copier ce code.
Il est important d'utiliser l'instruction swapf de sauver / restaurer le registre d'état, parce que, contrairement à la movf ou movwf, cette instruction, swapf ne modifie pas les drapeaux.

 
bien, je vois des problèmes supplémentaires simplement regarder votre code d'ISR.Vous pouvez sortir du rapport de recherche internationale sans restaurer W. Pourquoi appelez-vous retard dans le gestionnaire d'interruption?Vous trouverez sûrement pas de mesurer quoi que ce soit plus rapide de 10 Hz ...Peut-être que vous devriez passer un peu de compréhension des interruptions du temps et comment les utiliser.

Est-ce que le bit de basculement TMR1ON travailler comme vous attendez de lui?Je crois que je viens de lire TMR1H / L et puis désactivez-les sur tous les interrompre.Bien que cela ne nécessite une certaine prudence dans la façon dont vous utilisez la valeur de votre main loop.

Aussi, j'aimerais passer plus de temps à penser à des commentaires.Il devrait y avoir beaucoup plus d'entre eux (comme chaque ligne) - votre code d'initialisation est un parfait exemple.

 
merci pour la réponse que j'ai supprimé le retard et mon contrôleur détecte l'interruption externe

 

Welcome to EDABoard.com

Sponsor

Back
Top