mon microControleur ne reconnait pas TOIF
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

mon microControleur ne reconnait pas TOIF



  1. #1
    Albert-cosmoff

    mon microControleur ne reconnait pas TOIF


    ------

    bonjour a tous,
    voila tout d'abord je suis novice dans la programmation de microcontroleur,
    je veux regler prochainement via mon code une frequence de 40kHz via mon microC ,
    j'utilise un pic16F1508 de microship et j'utilise comme compilateur MPLABX, voici mon code :
    Code:
    #include <xc.h>
    #include <stdlib.h>
    
    // configuration du PIC16F1508
    #pragma config FOSC = INTOSC    // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
    #pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
    #pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
    #pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
    #pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
    #pragma config BOREN = OFF      // Brown-out Reset Enable (Brown-out Reset disabled)
    #pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
    #pragma config IESO = OFF       // Internal/External Switchover (Internal/External Switchover mode is disabled)
    #pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled)
    
    // CONFIG2
    #pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
    #pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
    #pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
    #pragma config LVP = OFF   
    
    
    #ifndef _XTAL_FREQ
    	#define _XTAL_FREQ 8000000
    #endif
    
    int debordement=0;
    
    void INIT_PIC()
    {
    T0CS=0;   // FOSC/4
    GIE=1;    // autorisation générale IT
    T0IE=1;   //valide IT en cas de débordement de TMR0
    T0IF=0;   // TOIF=1 quand debordement de TMR0
    PSA=0;    // On active les prediviseurs
    PS0=PS1=PS2=0;  //prediviseurs
    TMR0=0x00;
    
    //configuration des PORTS
    ANSELA=0;
    TRISA=0x0F;
    
    }
    void interrupt sous_programm()
    {
        while(TOIF==0);
        
            TOIF=0;
            debordement=1;
            TMR0=0x00;
        
    
    }
    void main()
    {
    INIT_PIC();
    
    }
    le probleme dans ce code est quand je le compile le TOIF du init_pic ne pose pas de probleme mais celui de interrupt sous_programm() il ne le comprend pas et le compilateur me met :"error: (192) undefined identifier "TOIF"" et je ne sais pas pourquoi,
    pouvez vous m'aider , merci d'avance

    -----

  2. #2
    PA5CAL

    Re : mon microControleur ne reconnait pas TOIF

    Bonjour

    D'un côté, je lis "T0CS" avec un zéro comme le deuxième caractère, et de l'autre je lis "TOIF" avec un "o" majuscule comme deuxième caractère...

  3. #3
    paulfjujo

    Re : mon microControleur ne reconnait pas TOIF

    bonjour,

    TOIF ne sera jamais reconnu, T0IF ???

    Et il fait quoi ce programme , à part se planter de suite..

    je ne connais pas la syntax sous X8 mais
    au vu de la datasheet du PIC
    essaie TMR0IF au lieu de T0IF ...

    la variable debordement doit etre de type volatile int .....
    La declaration de l'interrupt me parait bizarre...mais je travaille plutot en C18

    C'est justement le flag TMR0IF =1 qui fait rentrer dans le traitement d'interruption
    (si TMR0IE=1 et GIE=1)
    on ne met donc pas de boucle while sur le test TMR0IF ==0 ,puisqu'il est deja à 1
    et effectivement ,on le raz avant de sortir de l'IT


    Code:
    void interrupt sous_programm()
    {
        if (TMR0IF==1)
       {    
            TMR0IF=0;
            debordement=1;
            TMR0=0x00;
       } 
    
    }
    void main()
    {
    INIT_PIC();
    while(1);   // c'est le minimum à mettre ici , mais  on ne fait toujours rien
    }
    Dernière modification par paulfjujo ; 28/04/2014 à 15h46.

  4. #4
    Albert-cosmoff

    Re : mon microControleur ne reconnait pas TOIF

    non mais pour le t0IF j'ai mis la lettre o au lieu de 0

    merci de votre aide et bien vu PA5CAL ,
    de mon coté j'ai regardé tout la doc technique hier soir pour comprendre mon erreur , je vais donc me pendre

  5. A voir en vidéo sur Futura
  6. #5
    albanxiii
    Modérateur

    Re : mon microControleur ne reconnait pas TOIF

    Bonjour,

    A mon avis, c'est arrivé à tout le monde au moins une fois

    @+
    Not only is it not right, it's not even wrong!

Discussions similaires

  1. Choix d'un microcontroleur / carte à microcontroleur
    Par bisou10 dans le forum Électronique
    Réponses: 29
    Dernier message: 25/10/2013, 15h33
  2. mon pc ne reconnait le DD et clé USB
    Par invite28767f32 dans le forum Matériel - Hardware
    Réponses: 23
    Dernier message: 05/08/2010, 10h39
  3. PC ne reconnait plus barrette de RAM
    Par invite720ff50a dans le forum Matériel - Hardware
    Réponses: 6
    Dernier message: 28/09/2008, 12h27
  4. [Brun] Mon ordi reconnait pas mon Mp4
    Par invite25755d27 dans le forum Dépannage
    Réponses: 2
    Dernier message: 28/05/2008, 18h20
  5. ne reconnaît pas la clé
    Par invite8be99b3a dans le forum Matériel - Hardware
    Réponses: 8
    Dernier message: 03/07/2007, 00h05
Découvrez nos comparatifs produits sur l'informatique et les technologies.