"PIN CHANGE INTERRUPT" en quelques mots !?

bonjour a tous,

Après quelques recherches, je n'arrive toujours pas à cerner à quoi sert le "PIN CHANGE INTERRUPT".

Dans la pratique, qu'est qui est réalisé quand on utilise un 'PIN CHANGE INTERRUPT".

Et quel est la différence avec un "External Interrupt"?

cordialement.

Bonjour,

PIN CHANGE INTERRUPT s’applique sur toutes le pins (sur l’UNO), mais offre moins de possibilités, et est d’une utilisation un peu plus complexe que les INT0 et INT1, donc on peut les utiliser si INT0 et INT1 ne sont pas suffisantes.

Slt et merci pour ta réponse.

Mais sa n’explique pas à a quoi sert un “PIN CHANGE INTERRUPT”.

je suis Arduino Mega 2560, et j’utilise le PIN 10 de ma Arduino pour recevoir un signal PWM dont je souhaite mesurer la durée d’impulsion à l’état haut ( mesure de l’ordre de la µs).

Pour mesurer les durées, je souhaite utiliser “INPUT CAPTURE Mode”, donc je doit utiliser un ICPn (PIN 48 de ma arduino) .

(Veuillez me corrigez si je me trompe svp)

Sur le PIN MAPPING, le Pin 10 est défini PCINT4,

MA QUESTION : est ce que le “CHANGE INTERRUPT” me permet de rediriger mon interruption du Pin 10 vers le Pin ICPn ??

Non, PIN CHANGE INTERRUPT, comme son nom l'indique permet de générer une interruption lorsqu'une entrée change d'état.

merci encore kamil.

Du coup, quel est différence avec un External Interrupt ?

Bonjour,

Ca signifie donc que si tu utilises ta pin 10 pour mesurer la durée à l'état haut, tu dois à la fois activer le pin change interrupt sur cette voie et tester l'état de ta broche (haut ou bas) pour savoir si ce changement était un front montant ou un front descendant.

Alors qu'avec l'external interrupt, tu peux trigger directement sur front montant ou descendant, c'est plus simple à gérer.

Pour info, il y a une bibliothèque assez sympa qui permet de gérer toutes les interruptions de façon assez transparente: https://github.com/GreyGnome/EnableInterrupt

Ausmoz1: Du coup, quel est différence avec un External Interrupt ?

comme je te l'ai dit, sur la uno toutes les pins peuvent être utilisées et la majorité des pins sur la mega.

sa fait du bien de comprendre ! Merci les ga

Un tuto pas trop loin :
Interruptions AtMega 328p

C’est pour le 328p mais le principe est le même pour tous les avr.
Bien évidement il faut télécharger et utiliser la datasheet du micro utilisé.

(je prend un exemple par rapport à l'arduino uno) Pin change interrupt permet de détecter 3 interruptions (sans rechanger de pin), une sur les pins reliées au registres B du 328p, une sur les pins reliées au registres C, et une sur les pins reliées au registres D.

Quand l'interruption arrive, tu dois vérifier manuellement le front (si l'état est haut ou bas).

Imaginons que tu ais réglé 2 pin change interrupt sur: PD4 PB2

Si il arrive une interruption sur PD0, ton programme verra que dalle :)

Bonjour
Je me suis greffé sur ce post car ma question est en rapport.

kamill:
comme je te l’ai dit, sur la uno toutes les pins peuvent être utilisées et la majorité des pins sur la mega.

Puis-je avoir des précisions sur les pins du Mega sur lesquelles on peut programmer un PIN CHANGE INTERRUPT? Ou peut-on trouver la liste exhaustive de ces pins.
Merci

Le fonctionnement est très clair, je cherchais juste la liste des pins concernées. Merci