Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

Retour d'une intérruption ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » jeu. 1 sept. 2016 07:47

Bonjour à tous,

Voila je me pose la question suivante :

Que ce passe-t-il après le retour d'une interruption lorsque celle ci se déclenche pendant une pause ( delay_ms avec mikroC).

Pour être plus concret, dans un programme, j'envoie une commande , je fais une pause de 2 secondes. si pendant cette pause je reçois des données sur l'UART traitées en interruption, le programme va -t-il reprendre la pause la ou il l'avait laissé, ou la sautée et passer à la suite .

Merci de m'avoir lu !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Retour d'une intérruption ?
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#2 Message par Guest » jeu. 1 sept. 2016 13:01

Bonjour jeremy

Lorsqu'il y a une INT, le pointeur instruction PS ou start pointeur est sauvegardé ( c'est la position ou en est ton programme c'est par exemple dans une tempo) est sauvegardé aussi le registre W,le registre, STATUS et sur 18F le registre BSR sur 18F cela se fait automatiquement,sous 16F à la charge du programmeur.
Puis le systheme entre dans le SP, adresse de INT 0X4 ou 0x18 puis iul effectuer le travail dans int.

A la sortie il y a restitution de la sauvegarde puis le PS retrouve son adresse de départ donc celle dans la tempo.

le SP est sauvegarde dans la pile, cette pile sert aussi bien, pour les int, que pour les CALL .Donc attention elle est limité, pour un 16F 8 places pour un 18F 32 places. Gare de ne pas faire, trop appel a des SPG . si dépassement des limites, il y a ce que l'on appel DÉBORDEMENT de la pile est plantage assuré.

A+

Retour d'une intérruption ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#3 Message par Jérémy » jeu. 1 sept. 2016 13:07

Merci Maï,

donc la tempo continue ....

Pour être sur, je fais une tempo de 10 secondes, une interruption intervient au bout d'une seconde . l'INT se fait et revient à la pause pou elle reste encore 9 secondes !

J'avais un doute car il me semble avoir lu quelques part qu'un retour INT replaçais le programme ou il était partis mais si c'était une pause alors il la supprimé et passait a l'instruction suivante . Il se peux que ce soit sur les Picaxes sur lequel j'ai commencé à programmé.

Donc je comprends pas vraiment pas se qui ce passe dans mon programme ... :furieux:

Merci à toi
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Retour d'une intérruption ?
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#4 Message par Guest » jeu. 1 sept. 2016 13:16

Jérémy a écrit :
Pour être sur, je fais une tempo de 10 secondes, une interruption intervient au bout d'une seconde . l'INT se fait et revient à la pause pou elle reste encore 9 secondes !


Oui mais tu as tempo 10s + le temps dans l'int ou ce que fait l'int .si c'est ce temps hors pause est de 8s par exemple ta tempo sera donc de 10+8, 18s

Retour d'une intérruption ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#5 Message par Jérémy » jeu. 1 sept. 2016 13:20

Ok, Dans mon exemple je considérais le temps de l'INT très court donc négligeable par rapport au 10 secondes.
Mais je vois ce que tu veux dire .

un grand merci.

j'ai une petite notion sur les piles, mais j'avoue que tout retenir du premier coup est impossible, je suppose qu'il faut plusieurs années pour bien comprendre le fonctionnement interne d'un µC
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Retour d'une intérruption ?
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#6 Message par Guest » jeu. 1 sept. 2016 21:24

La pile pour 8 bits, ne contient que les pointeurs instruction ,suite a des call ou des int.Pour les 16 bits ,tu peux mettre ce que tu veux en pile, variables registres, mais attention demande plus de rigueur,il ne faut pas charger le pointeur instruction avec la valeur d'une variable , sinon plantage assuré, mais que c'est rapide . Pas de limites sinon espace RAM mais bon....

A+


Retourner vers « Généralités sur les PICs »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités