Précisions sur les Interruptions

yves13

New Member
Bonjour,
Je débute avec la techno Picaxe et avant de me décider à l'utiliser pour remplacer de vieux 8051 j'ai décidé d'en faire le tour.
Pour commencer, j'ai choisi une version de milieu de game, le 20X2. Le produit à l'air alléchant par sa simplicité de mise en oeuvre.
Le seul point qui me pose problème, ce sont les Interruptions. Il y a bien une discution qui porte sur ce sujet mais le lien avec le fichier
contenant les info. est cassé. Si quelqu'un ayant creusé le sujet pouvait éclairer ma lanterne, il serait le bien venu et me ferait gagner beaucoup de temps.
Quelques questions que je me pose : - N'y a t il qu'un seul vecteur d'interruption nommé "interrupt:"?
- Pour un 20X2 quelle est la différence entre les "hint" et les pins C.1 à C.5 configurés par setint ?
- Quel est le role des flag ?
- Quel est le temps de réaction (en cycle d'horloge) entre le front déclancheur et l'entrée dans la routine d'interruption?
- Peut on imbriquer plusieurs interruptions, et par conséquent comment se gère les priorités ?
Excusez moi si ces questions ne sont pas pertinantes pour un Picaxe.
Merci par avance.
 

PieM

Senior Member
Bonjour, et bienvenue.

Il n'y a qu'un vecteur d'interruption qui conduit à une routine nommée obligatoirement interrupt qui doit, avant le return, se réinitialiser par un setint .
Il n'est pas possible d'imbriquer des interruptions.

Setint peut s'appliquer à toute la gamme picaxe et permet de combiner des états d'entrées conduisant à une interruption, avec des conditions logiques associées.

Hintsetup ne concerne que les 20X2 et au dessus, qui sont équipés d'entrées interruption hard.
hint1 et hint2 pour le 20X2 (entrées B.0 et B.1)
hint0, hint1, et hint2 pour le 28X2 et 40X2

Ce sont des "vraies" entrées interruption.
Le hintsetup permet donc de définir dans ce cas quels sont les entrées hint actives et si l'interruption intervient sur front montant ou descendant.

Concernant le hintflag ( uniquement valable aussi pour le 20X2 et +):
des conditions interruptives sont possible par d'autre conditions que les précédentes: écriture série en arrière plan, entrée hi2c, état du comparateur interne, overflow du timer.

hint0, hint1, et hint2 sont associées au flags 0 à 2 (1 à 2 pour le 20X2)
le flag 3 est activé si hint0 ou hint1 ou hint2
flag 4 est le comparateur
flag5 entrée série
flag6 entrée hi2c
flag7 overflow du timer.

Le setintflag, à la manière de setint , permet de définir les flags actifs, et leur condition d'état.

Vous aurez beaucoup plus d'infos sur le forum anglais en recherchant "interrupt" .
 

yves13

New Member
Merci

Merci Piem d'avoir pris le temps de me répondre aussi rapidement.
Les Bouches du Rhône salut l'Hérault.
 

westaust55

Moderator
La commande et la fonction de SETINT est par une méthode votée où le progiciel vérifie le statut des goupilles à l'accomplissement de chaque commande/étape de programme de BASIC. En conséquence, s'il y a une longue commande de PAUSE de durée puis l'interruption ne sera pas appelée jusqu'à ce que la durée de pause ait expiré et en conséquence l'interruption peut être manquée complètement si le changement d'état d'entrée à une goupille est momentané.

L'arrangement de "HINT" d'interruption de matériel utilise le matériel et est sans interruption surveillé. Même si le programme est occupé à exécuter une commande qui prend une plus longue durée, l'interruption n'est pas manquée pendant que même est capturé dans le matériel et le drapeau d'interruption correspondant est placé.
 

yves13

New Member
Bonjour, bonsoir selon que l'on soit en Europe ou en Australie !
Je présume que les remarques de westaust55 s'appliquent de la même façon aux fonctions (Hser Ser), (Hpwm pwm), (Hspi, spi).
Cordialement,
Yves13:)
 

aneta

New Member
bonsoir,
sur picaxe 20M2 j'ai défini l'entrée d’interruption sur C.5
Cela fonctionne très bien.
mais je souhaiterais que cette interruption ramène au tout début du programme et cela je n'arrive pas malgré de longues heures de lecture !
cordialement
aneta
 

aneta

New Member
Bonsoir,

Solution radicale, un reset dans le sub interrupt:

MM
Merci !
solution fonctionnellement radicale !

Connaissez vous un ou des bouquins qui vous semblent les mieux écrits pour l'apprentissage du basic des picaxes ?
j'avoue que je commence à 66 balais à mélanger mes connaissances entre le langage basic microsoft,le langage arduino et le PHP !!
cordialement

aneta
 
Top