30.07.2015 Views

La programmation des PICs - Seconde partie

La programmation des PICs - Seconde partie

La programmation des PICs - Seconde partie

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

; interruption RB4/RB7; --------------------intsw2btfsc INTCON , RBIE ; tester si interrupt RB4/7 autoriséebtfss INTCON , RBIF ; oui, tester si interrupt RB4/7 en coursgoto intsw3; non sautercall intrb4 ; oui, traiter interrupt RB4/7bcf INTCON , RBIF ; effacer flag interupt RB4/7goto restorereg ; et fin d'interruptATTENTION : n’oubliez pas (cours-part1) que dans la routine « intrb4 » detraitement de cette interruption, vous devrez impérativement lire le PORTB, afind’annuler la condition de positionnement de RBIF, et ainsi permettre son reset lors duretour.Vient ensuite :intsw3btfss INTCON , PEIE ; tester interruption périphérique autoriséegoto restorereg ; non, fin d'interruptionCeci amène un petit commentaire. En effet, vous avez deux façons d’arriver à ce point devotre routine d’interruption :1) Vous avez conservé les lignes « goto restorereg ». Dans ce cas, puisque vous arrivez à cepoint du programme, c’est que forcément vous n’êtes pas passé par une <strong>des</strong> interruptionsprécédentes. En effet, après exécution d’une interruption précédente, cette <strong>partie</strong> aurait étésautée via la ligne en question.Donc, dans ce cas, les événements précédents n’ont pas été les déclencheurs del’interruption. Il s’agit donc forcément d’une interruption périphérique, donc, il est inutile detester PEIE, car il est forcément à « 1 ».2) Vous avez supprimé les lignes « goto restorereg ». Dans ce cas, il est possible qu’uneinterruption précédente ait eu lieu. Dans ce cas, il vous reste deux sous-solutions :- Si le bit PEIE reste inchangé durant toute l’exécution du programme, vous pouvezsupprimer ce test.- Si vous modifiez le bit PEIE durant l’exécution de votre programme, vous devez laissercette ligne, pour les mêmes raisons que celles évoquées pour le test de T0IE.Naturellement, si vous n’utilisez dans votre programme aucune interruption périphérique,inutile de laisser ces lignes.Notez que si vous ne touchez à rien, tout fonctionnera très bien dans tous les cas (saufcertains programmes spécifiques). Je vous conseille donc, dans le doute, de laisser cetteroutine telle quelle, si vous n’êtes pas à quelques microsecon<strong>des</strong> près.Ensuite, nous trouvons les tests <strong>des</strong> interruptions périphériques51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!