[Programmation] STM32 - Comment associer une interruption overflow et la fonction de callback
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

STM32 - Comment associer une interruption overflow et la fonction de callback



  1. #1
    002

    STM32 - Comment associer une interruption overflow et la fonction de callback


    ------

    Bonjour,

    Sur Arduino ou STM32duino, j'ai créé un timer de base dont le bit prévu à cet effet dans le registre du timer est bien régulièrement modifié. Donc le timer fonctionne.

    Code:
    #define tim  TIM1
    void setup() {
      uint16_t Prescaler = (uint16_t) (SystemCoreClock / 1000000) - 1;
       activer le circuit du timer, a faire avant de définir les variables du timer :
      RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; // pour TIM1
      RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; // pour TIM3
      
      tim->ARR = 60000;
      tim->PSC = Prescaler;
      tim->CR1 = tim->CR1 | ( 1 << 0); // le BIT 0 du registre CR1 (appelé CEN) active le compteur
    }
    Dans le loop, je détecte l'overflow avec :
    Code:
    void loop() {
    if (tim->SR & TIM_SR_UIF) { // overflow détecté
        tim->SR = tim->SR & ~TIM_SR_UIF; // Remise à zéro de UIF
        // ici switcher une led par exemple
      }
    }
    Ce que je voudrais maintenant, c'est déclencher une interruption quand ce bit change (donc quand il y a un overflow) au lieu de le détecter comme ici dans le main().
    Sur arduino+AVR, on avait des fonctions ISR toute prête.

    La, en cherchant, je lis qu'il faut charger une table de vecteur depuis la mémoire flash pour trouver le pointeur de la fonction déclenché par l'interruption, mettre du sang de poulet sur le clavier et invoquer le malin. Tout ce que je voulais moi, c'était exécuter 2 lignes de code à l'overflow... Bref, je crois comprendre qu'il faut donc - en gros - que je déclare ma fonction et que je renseigne son adresse dans une table dont je découvre l'existence théorique aujourd'hui... C'est bien ça ?

    Déclarer une fonction et mettre son adresse dans une case, je devrais y arriver. Mais trouver la case, là, j'ai pas compris.
    Je me permet donc de solliciter votre aide pour m'aider à comprendre ce qu'il faut faire - dans la vraie vie - pour atteindre ce modeste objectif...

    En vous remerciant

    Le mpu est un stm32f103c8t6

    -----

  2. #2
    Murayama

    Re : STM32 - Comment associer une interruption overflow et la fonction de callback

    Bonjour!

    Il y a une autre méthode en jetant de la main droite et par dessus l'épaule gauche du sel
    ramassé par une vierge en lune descendante. On obtient d'assez bons résultats.
    Sinon il y a la méthode CubeMX qui a l'avantage de générer complètement le code nécessaire.
    Je me sers toujours de CubeMX pour débroussailler, et je retouche le code à la main.
    Mais c'est une méthode efficace pour démarrer vite.

    Pascal

  3. #3
    002

    Re : STM32 - Comment associer une interruption overflow et la fonction de callback

    CubeMX est beaucoup trop compliqué pour un débutant comme moi. J'ai abandonné l'affaire. Il faut maitriser les fondements pour s'en servir, ce qui n'est pas mon cas.

    D'ailleurs, je pense que c'est d'un fondement dont il s'agit, et je reste preneur de toutes explications complémentaires.

Discussions similaires

  1. c++ probleme fonction callback
    Par cosmoff dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 16/07/2017, 13h47
  2. passage d'ooo à libreoffice comment associer un .doc à swriter
    Par serrepate dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 04/04/2011, 20h51
  3. comment associer plusieurs groupe electrogenes en parallel?
    Par inviteff1e5828 dans le forum Physique
    Réponses: 7
    Dernier message: 23/05/2010, 11h41
  4. [Divers] comment associer deux groupes electrogenes
    Par 0240047993 dans le forum Dépannage
    Réponses: 22
    Dernier message: 01/08/2008, 20h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.