horloge et interruption pic18
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

horloge et interruption pic18



  1. #1
    inviteb5c0d7bb

    horloge et interruption pic18


    ------

    Bonjour,
    je programme un pic18f252 en C avec le compilateur MCC18.
    j'utilise le pic a 40Mhz en HS-PLL
    je souhaite réaliser une interruption tout les 1ms et également créer une tempo du genre delays(nbseconde) pour mon pic.
    est-ce que quelqu'un peut m'aider svp?

    -----

  2. #2
    jorg1n

    Re : horloge et interruption pic18

    Bonjour,

    voila un bout de code pour réaliser un delay, mais à vérifier avec un oscillo... car moi j'utilise cette valeur (27664 pour i et 18 pour j mais j'utilise un quartz de 20Mhz )et je précise que cette fonction n'utilise pas les interruptions donc elle met le programme en "pause"...ce n'est donc pas terrible, après ça dépend ce que tu veux faire...

    Code:
    void DELAY_SEC(int sec)
    {
    int i=0, j=0, k=0;
    do
    {
      k++;
      j=0;
      do
        {
         j++;
         for(i=0; i<=27664; i++);
         }
      while (j<18);
    }
    while(k<sec);
    }
    pour le timer de 1ms...
    il faut tout d'abord initialiser ton timer et autoriser les IT par le timer que tu utilises:

    Code:
    void init_timer (void)
    {
      T0CON = 0x87;		// Initialisation timer0 - Enable Timer0/16bits timer/
      GIE = 0;              // Autorise toutes les interruptions
    
      TMR0H = 0xE1;         // Fixe la valeur du registre TMR0H
      TMR0L = 0x7C;         // Fixe la valeur du registre TMR0L
      TMR0IF = 0;           // Initialise le flag TMR0IF d'IT du Timer 0
      TMR0IE = 1;           // Autorise les interruptions de TMR0
      INT1IE=0;             //Interdiction des interruptions sur INT1
      GIE = 1;              // Autorise toutes les interruptions
    }
    voila le code pour un timer de 400ms...a toi de fixer TMR0H et TMR0L

    pour fermer le timer...
    Code:
    void close_timer (void)
    {
      T0CON = 0x07;		// Initialisation timer0 - Enable Timer0/16bits timer/
      TMR0IE = 0;           // Interdit les interruptions de TMR0
      GIE= 0;               // Interdit toutes les interruptions
    }
    Voila ce que je peux te donner...
    a toi de voir ce qui te t'intéresse...

  3. #3
    invitea09d71c0

    Re : horloge et interruption pic18

    sinon y'a aussi des fonction toute faite
    faut juste penser a appeler la librairie correspondante (delays.h je crois)

    par exemple
    delayAtcy(Y) ;
    donc sa attend Y cycle d'horloge
    si tu a un quartz 40 MHz
    sa te donne 0.40µs / 4 x (A x Y).

    (sachant que A = 1, 10, 100, 1K, 10K)

  4. #4
    inviteb5c0d7bb

    Re : horloge et interruption pic18

    merci pour votre aide j'ai réussi a faire mon interruption comme je voulais ainsi ke mes fonction d'attente.
    il existe effectivement les fonction du type DelayATCY(Y) mais elle ne prennent que des char donc ça limite l'attente que l'on veut donner : j'ai fait mes fonctions d'attente qui utilisent celles-la

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

    Re : horloge et interruption pic18

    après réflexion les fonction d'attentes ne correspondent pas pour mon application. il me faut donc 2 sortes d'interruption sur les timer : 1 à intervalles réguliers en utilisant le CCP1
    1 à intervalles variables en utilisant le timer 0

    celle qui utilise le CCP1 fonctionne correctement. en revanche, après de multiples essai, n changeant les valeurs des registre TMR0H et TMR0L, et lecture de la datasheet, je ne vois aucun lien logique entre le delai entre chaque interruption et la valeur de ces registres. est-ce que quelqu'un pourrait me dire que est ce lien svp?

    j'utilise le timer0 avec un prescale de 1:2.

    merci par avance

Discussions similaires

  1. Dérive PIC18
    Par invitee4b44406 dans le forum Électronique
    Réponses: 18
    Dernier message: 12/09/2008, 15h31
  2. jeu d'instruction pic18
    Par invite9293de6d dans le forum Électronique
    Réponses: 3
    Dernier message: 11/09/2008, 19h32
  3. programmation PIC18
    Par invite69ee2a36 dans le forum Électronique
    Réponses: 1
    Dernier message: 22/03/2007, 16h39
  4. Liaison série pic18 <> PC
    Par invitedeabeaf0 dans le forum Électronique
    Réponses: 2
    Dernier message: 06/03/2007, 23h13
  5. Horloge lumineuse, horloge mecanique et Einstein
    Par pidofra dans le forum Physique
    Réponses: 6
    Dernier message: 22/03/2006, 15h21
Découvrez nos comparatifs produits sur l'informatique et les technologies.