probleme pour créer un timer avec le pic18F45K22
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

probleme pour créer un timer avec le pic18F45K22



  1. #1
    docEmmettBrown

    probleme pour créer un timer avec le pic18F45K22


    ------

    Bonjour,

    voila je veux créer un timer avec une certaine frequence, le probleme est quand je lance mon code, la sortie RA0 ne bouge pas du tout elle reste à 0 volt alors que je devrais avoir un signal carré.
    voici mon code:
    Code:
    #include <xc.h>
    #pragma config FOSC = INTIO67
    #ifndef _XTAL_FREQ
    	#define _XTAL_FREQ 16000000
    #endif
    
    int Flag_clock = 0 ;
    
    
    void init_pic()
    {
        OSCCON=0b01111100;  //Oscillateur interne à 16MHz
    
        ANSELA=0b00000000;
        TRISA=0b00000000;
        PORTA=0x00;
        
        T0CON = 0b11010111 ;// prescalaire : 256
        TMR0L = 50 ;
       
    }
    
    void interrupt sous_programm()
    {
        if(TMR0IF)
        {
            Flag_clock = 1 ;
            TMR0IF = 0 ;
            TMR0L = 50 ;
        }
    }
    
    
    void main(void)
    {
    
        init_pic();
        while(1)
        {
            if(Flag_clock)
            {
                Flag_clock = 0 ;
                LATAbits.LATA0 = !LATAbits.LATA0 ;
            }
    
        }
    }
    je vous donne le diagramme du timer0 ci joint, j'ai eu un peu de mal à le comprendre notamment les rectangles avec un 1 et un 0, sinon tous me semble correcte pour le fonctionnement du timer0.
    la doc technique ( timer0 page 159) : http://ww1.microchip.com/downloads/e...Doc/41412F.pdf

    merci d'avance pour votre aide.

    -----
    Images attachées Images attachées  

  2. #2
    invite03481543

    Re : probleme pour créer un timer avec le pic18F45K22

    Bonsoir,

    Vous avez oublié de déclarer INTCON
    Code:
    INTCON=0x11100000; // GIE=1, PEIE=1,TMR0IE=1
    en mettant TMR0L=50 uniquement avez vous une petite idée du timing que vous obtenez avec un timer sélectionné en 8 bits et avec un quartz de 16MHz?

    16MHz=62.5ns => Fosc/4= 4MHz => Ttick=0.25µs
    Vous utilisez un prescaler de 1:256 soit un pas de compteur=64µs

    Vous mettez un offset dans le timer0 de 50:

    256-50=206*64µs=13ms => 76Hz

    C'était ça votre calcul? En gros votre led semblera éclairer fixement il vous faudra un scope pour voir vos signaux carrés.

    Ajoutez INTCON et ça fonctionnera.
    @+

  3. #3
    invite03481543

    Re : probleme pour créer un timer avec le pic18F45K22

    Et Flag_clock doit être une variable de type volatile également.
    Code:
    volatile unsigned int Flag_clock = 0;
    Dernière modification par HULK28 ; 03/07/2015 à 23h29.

  4. #4
    docEmmettBrown

    Re : probleme pour créer un timer avec le pic18F45K22

    oui HULK28 c'était bien ca le probleme, merci beaucoup !!

  5. A voir en vidéo sur Futura

Discussions similaires

  1. probleme pour creer un timer de 5secondes avec microchip
    Par Albert-cosmoff dans le forum Électronique
    Réponses: 4
    Dernier message: 06/05/2014, 16h41
  2. Problème avec timer SA555
    Par spirou3859 dans le forum Électronique
    Réponses: 12
    Dernier message: 25/10/2013, 22h20
  3. Réponses: 14
    Dernier message: 06/10/2013, 17h11
  4. Réponses: 6
    Dernier message: 13/06/2012, 15h41
  5. Problème de signal carré avec un timer
    Par invite99a31ef7 dans le forum Électronique
    Réponses: 5
    Dernier message: 23/01/2009, 20h19
Découvrez nos comparatifs produits sur l'informatique et les technologies.