Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Recherche exemple Interruption



  1. #1
    Paulochon

    Recherche exemple Interruption


    ------

    Bonjour à tous,

    Voici quelques temps que plusieurs personnes m'aide et on pris le temps de m'expliquer comment fonctionne les interruption, Hors je travaille sous NotePad (WinAVR) et je cherher comment programmé en C/C++ une interrutpion externe, j'ai bien compri qu'il faut définir la librairie (#include <avr/interupt.h>) mais enssuite je ne sais pas comment faire de trop, lol. Le principe je pense l'avoir acquis mais la façon de le programmé me semble juste le dernier obstacle à mon aboutissement.

    J'ai vu que cette librairie inclué un petit exemple qui me parle pas beaucoup à vraie dire.

    Si quelqu'un un petit exemple à me faire part sa serai gentil!!!

    En vous remerciant d'avance pour votre aide,

    PS: le programme de scrutage fonctionne le problême était si simple que je n'avai pas vu d'ou sa vené juste une faute de frappe et au lieu de == j'avai mi = et comprenai bien la catastrophe que sa a causé

    Je posterai le programme entier une fois achevé

    En vous remerciant d'avance
    Cordialement
    Paulochon

    -----
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  2. Publicité
  3. #2
    Paulochon

    Re : Recherche exemple Interruption

    Je vien de tourvé un petit exemple que je vais devoir modifier je vous le post et je post ma modification juste à près

    #include <avr/io.h>
    #include <avr/interrupt.h> //Librairie pour la gestion des interruptions


    ISR(INT0_vect) //Vecteur d'interruption de INT0
    {
    PORTA++; //Incrémente PORTA
    }

    int main (void)
    {


    DDRD &=~_BV(2); //INT0 en entrée
    PORTD |= _BV(2); //Active la résistance de tirage sur l'entrée INT0

    DDRA = 0xFF; //Port A en sortie

    GICR |= _BV(INT0); //Interruption sur INT0

    MCUCR |= _BV(ISC01); //Interruption sur front descendant donc dans le registre MCUCR ISC01 = 1 ISC00 =0
    //Vu que MCUCR à comme valeur par defaut 0 on a juste à mettre ISC01 à 1 Cf : datasheet

    sei(); //Active les interruptions

    while(1); //Boncle sans fin


    return 1;
    }
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  4. #3
    Paulochon

    Re : Recherche exemple Interruption

    Je vien de faire plusieurs essaie mais sa n'a rien donné, gggrrrrrrrrr

    Une question reste en suspant pour autant puis-je mettre n'importe quel bit d'un port en mode d'interruption

    Je m'explique

    j'utilise l'Atmega8535 est que par exemple je peut mettre les 4 premier bit de mon PORTB en interrution pour que si l'un d'entre en vienne à venir à 1 il lance le scrutage des portes

    Sinon je pensé mettre en interruption INT0 puis enssuite detecter l'ouverture d"un des 4 portes et lancé le scrutage.

    Je vien de reprendre une fois de plus ma doc pour allé voir les registres et essaié de la faire maintenant en C
    Mais la seul chose que manque c'est l'écriture exate qu'il faut employé,
    Merci d'avance Paulochon
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  5. #4
    Paulochon

    Re : Recherche exemple Interruption

    ReBonsoir,

    je sais je dois être un , ,

    Mais je viens d'essayer de modifier ce petit exemple pour mon applique,
    Alors dite moi si j'ai bien compri

    ISR(INT0_vect) //Vecteur d'interruption de INT0
    {
    .... Programme de scrutage des portes sur le PORTB ...
    }
    Ici je met mon programme qui va se lancer lorqsue j'orai une interruption
    Essuite

    DDRD &=~_BV(2); //INT0 en entrée
    PORTD |= _BV(2); //Active la résistance de tirage sur l'entrée INT0
    GICR |= _BV(INT0); //Interruption sur INT0
    MCUCR |= _BV(ISC01);

    sei(); //Active les interruptions
    La je défini mes registre pour dire au micro que j'utilise INT0
    Hors je ne vois pas dons cette exemple la gestion du SREG je ne sais pas si il est deja géré par la bibliothèque mais j'aimerai savoir si je suis sur la bonne voie et pourquoi sa ne fonctionne pas pour l'instant voila une aprem que je reli et reli la datasheet,

    Vous allez sans doute me dire que je suis un peu lent à la détente ,


    En vous remerciant d'avance de l'aide que vous allez m'apportez
    Cordialement Paulochon
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  6. A voir en vidéo sur Futura
  7. #5
    Paulochon

    Re : Recherche exemple Interruption

    Rebonsoir,

    Je relance un peu la discution,

    Je voudrai savoir si quelqu'un a deja programmé sous WinAvr un atmega8535 pour géré ces interruption.

    Merci d'avance Paulochon
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  8. #6
    Jack
    Modérateur

    Re : Recherche exemple Interruption

    Je t'aurais bien aidé, mais je ne connais pas les ATMEL.

    N'empêche, quel que soit le µC utilisé, il me semble que tous les compilateurs demandent l'ajout d'un mot réservé lors de la déclaration de la fonction. En général, il s'agit du mot réservé "interrupt".

    C'est forcément renseigné dans la doc de ton compilateur.

    A+

  9. Publicité
  10. #7
    Jack
    Modérateur

    Re : Recherche exemple Interruption

    Je viens de jeter un rapide coup d'oeil. ISR est une macro qui permet effectivement de déclarer une fonction d'interruption.

    Mais il faut néanmoins renseigner la table des vecteurs d'interruption pour que ton µC fasse le saut.

    A+

  11. #8
    Paulochon

    Re : Recherche exemple Interruption

    Merci Jack, je vais regardé ma doc (encore une fois )
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  12. #9
    Paulochon

    Re : Recherche exemple Interruption

    Hummm je reste face a un problême,

    Je tien une lutte sangunaire pour la déclaration du registre GICR qu'il ne veut pas complilé,

    Il me dit que GICR n'est pas déclaré, alors que MCUCR il le reconnais bien

    Comprenais ma frustration d'avoir compris comment fonctionne des interruption mais d'être incapable de finalisé en language C sous WinAVR (NotePad).

    Si quelqu'un a une idée je suis prenneur
    Dans l'attente d'une de vos réponse
    Je vous remercie d'avance
    Cordialement
    Paulochon
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  13. #10
    Cl3MENTE

    Re : Recherche exemple Interruption

    Vérifie la revision de ton composant, quand j'utilisait le 8535 il n'y avait pas encore de registre gicr juste un gimsk. Si ca se trouve tu as une datasheet plus recente que ton composant. Le reste de ton programme parait correct.
    Si vraiment tu ne trouve pas la solution essais un programme en assembler, ton code n'est pas très compliqué.

  14. #11
    Paulochon

    Re : Recherche exemple Interruption

    Tu veux dire quoi part la,

    Il faut que je vérifie la bobliothèque des interuption,
    En faite j'ai tout essayé,
    Et pourtan le registre GICR est existant dans le composant,
    J'ai une des dernière version de WinAVR

    Par ou commencerai tu ????

    Merci d'avance
    Cordialement
    Paulochon
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  15. #12
    Paulochon

    Re : Recherche exemple Interruption

    Je vien de trouver l'erreur,

    Bon la déclaration dans en dehors du main est bonne,

    Voila la déclaration des registre que WinAVR prend en compte pour la partie du programme principal

    cli();
    GIMSK = 0xC0; // autoriser Int0 Int1
    MCUCR = 0x0A;
    sei();


    Je tien le post au courant de mes avancement
    Merci
    Cordialement
    Paulochon
    Rien n'est plus proche du vrai que le faux ( Albert Einstein )

  16. Publicité

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/09/2007, 19h43
  2. recherche exemple de programme en C
    Par madbrain dans le forum Électronique
    Réponses: 6
    Dernier message: 22/06/2007, 22h32
  3. Interruption I2C
    Par Pitch21 dans le forum Électronique
    Réponses: 4
    Dernier message: 19/01/2007, 10h20
  4. recherche d'un contre-exemple (analyse)
    Par Aleph-0 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 30/10/2006, 10h20
  5. A la recherche d'un contre exemple [continuité et applications partielles]
    Par GuYem dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 08/09/2005, 21h14
Découvrez nos comparatifs produits sur l'informatique et les technologies.