pas de soucis
Je reviens un peu sur mon explication (rapide) du #pragma:
l'interruption n'est pas copiée à l'adresse du vecteur d'interruption puisqu'il n'y de la place que pour un opcode, par contre tu devrais y trouver un code assembleur pour sauter vers ton vers ton interruption (jmp?). On doit pouvoir vérifier ça en regardant le code assembleur généré dans un .quelquechose (.lst?) si tu le demandes au copmpilateur. Enfin bref d'une façon ou d'une autre c'est cette directive de compilation qui va faire le lien entre le vecteur d'interruption et ton __interrupt.
Le __interrupt spécifie également au compilateur le code assembleur à ajouter par rapport à des fonctions classique: il y a vraisemblablement un mot clé pour définir si on veut ou non faire la sauvegarde des contextes, faire le retour de l'interruption etc... mais là on tape dans le niveau très avancé! Par défaut (99,9% des cas) le __interrupt suffira.
Je reviens un peu sur mon explication (rapide) du #pragma:
l'interruption n'est pas copiée à l'adresse du vecteur d'interruption puisqu'il n'y de la place que pour un opcode, par contre tu devrais y trouver un code assembleur pour sauter vers ton vers ton interruption (jmp?). On doit pouvoir vérifier ça en regardant le code assembleur généré dans un .quelquechose (.lst?) si tu le demandes au copmpilateur. Enfin bref d'une façon ou d'une autre c'est cette directive de compilation qui va faire le lien entre le vecteur d'interruption et ton __interrupt.
Le __interrupt spécifie également au compilateur le code assembleur à ajouter par rapport à des fonctions classique: il y a vraisemblablement un mot clé pour définir si on veut ou non faire la sauvegarde des contextes, faire le retour de l'interruption etc... mais là on tape dans le niveau très avancé! Par défaut (99,9% des cas) le __interrupt suffira.