Timer PIC32MX
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Timer PIC32MX



  1. #1
    invitee8f75e57

    Timer PIC32MX


    ------

    Bonjour,

    Je suis en train de programmer un timer qui est censé me décrémenter une variable que j'ai nommé "temps" à chaque débordement de timer (toutes les 1 seconde). Pour faire ceci j'utilise un PIC32MX795 (à ce jour je n'ai utilisé que le LPC2378).
    Lors de la compilation j'ai ces deux erreurs suivantes :
    error: Interrupt priority must be specified as 'single' or 'IPLn[AUTO|SOFT|SRS]', where n is in the range of 0..7, inclusive.
    error: Vector number must be an integer between 0 and 63

    Ces deux erreurs viennent de la fonction d'interruption du timer à _Timer_3_Vector et ip11. Ce qui est étrange car j'ai suivi la datasheet du composant en utilisant le timer 3. Peut être est-ce une erreur "bête" que je n'ai pas su voir.

    Voici mon code :

    #include <p32xxxx.h>
    #include <plib.h>

    unsigned long temps = 100;

    //Dans la fonction d'interruption du timer on décrémente la variable temps de 1
    void __ISR(_Timer_3_Vector, ip11) Timer3Handler(void)
    {
    temps = temps - 1;
    IFS0CLR = 0x1000;//la requête d'interruption a eu lieu pour le timer 3
    }

    //On initialise le timer 3 avec une valeur TMRx de telle sorte qu'il y'ait une interruption toutes les 1 minutes
    void init_timer()
    {
    T3CON = 0x0;
    T3CONSET = 0x73;//on autorise le mode 32 bits et son se place en valeur prescalaire 1:256
    TMR3 = impulsion;
    PR3 = 0xFFFFFFFF;//registre de période max

    IPC3SET = 0x3;//la priorité du timer 3 est 1
    IPC3SET = 0x1;//la sous priorité du timer 3 est 1

    IFS0CLR = 0x100000;//la requête d'interruption a eu lieu
    IEC0SET = 0x100000;//autorisation de l'interruption

    T3CONSET = 0x8000;//on autorise le module (démarrage du timer)
    }

    int main ()
    {
    init_timer;
    while (1)
    {
    }
    }

    Merci pour vos réponses

    -----

  2. #2
    invite860936ec

    Re : Timer PIC32MX

    Le probleme ne vien pas de la routine d'interuption mais de la configuration des interuptions:
    http://ww1.microchip.com/downloads/e...e%2051686a.pdf
    chapitre 3
    @+

  3. #3
    RISC

    Re : Timer PIC32MX

    Salut,

    Je te recommmande de t'aider des exemples de code pour les PIC32 qui montrent comment programmer différents périphériques :
    http://www.microchip.com/wwwproducts...cName=en545660 (sous la rubrique "code examples" )

    a+

  4. #4
    invitee8f75e57

    Re : Timer PIC32MX

    Salut,

    C'est bon je viens de régler mon problème : J'avais fait une erreur de syntaxe en mettant un 1 à la place du l, et j'ai directement mit le numéro du vecteur comme 1er argument en me servant de la datasheet du PIC

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Problème de configuration d'oscillateur PIC32MX
    Par invite3bb6cfa9 dans le forum Électronique
    Réponses: 5
    Dernier message: 19/03/2012, 21h47
  2. UART Transmission-reception Pic32mx
    Par invite4e8b483b dans le forum Électronique
    Réponses: 9
    Dernier message: 01/03/2012, 09h36
  3. Problème avec EthDescriptorsAdd() sur le PIC32MX
    Par invite3bb6cfa9 dans le forum Électronique
    Réponses: 4
    Dernier message: 23/02/2012, 22h10
  4. PWM Sur PIC32MX
    Par inviteddae56c8 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/09/2011, 23h25
  5. Programmation en C avec Timer 0 et Timer 1
    Par invite6844fe5f dans le forum Électronique
    Réponses: 43
    Dernier message: 20/04/2010, 14h27
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...