Programmation ATMEL8535, erreur de compilation inconue pour moi^^
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Programmation ATMEL8535, erreur de compilation inconue pour moi^^



  1. #1
    invite85a93e3d

    Programmation ATMEL8535, erreur de compilation inconue pour moi^^


    ------

    J'utilise le logiciel AVR Code vision dont j'ai l'habitude, je vient tout juste de commencer un nouveau programme mais lors de la compilation il me renvoi l'erreur suivante:

    Code:
    Error: C:\cvavreval\bin\main.c(XX): explicit return type is missing, 'void' assumed
    il me met ça devant chaqu'une des fonctions, le "main", "init" et "interrupt"

    J'ai mit des "void" pour les fonctions "main" et "init", mais si je met un "void" devant mon "interrupt" j'obtien l'erreur suivante:

    Code:
    Error: C:\cvavreval\bin\main.c(14): 'interrupt' or '__interrupt' attributes not allowed in this context
    Programme complet:

    Code:
    #include <mega8535.h>
    
    int a=0;
    
    void init()
    {
     SREG =     0b10000000;
     GIMSK =    0b10000000; 
     MCUCR =    0b00000011;
    
     
    }
    
    void interrupt[2]capture(){}
    {
    
    if(a=0)
    {
     TCCR1B =   0b00001001;
     MCUCR =    0b00000010;
     a=1;
    }
    else
    {
    TCCR1B =    0b00000000;
    MCUCR =   0b00000011;
    a=0; 
    }
    
    }
    
    void main()
    {
    init();
    while(1);
    }

    Je précise également que c'est la première fois que j'utilise AVR sur cette machine.

    Merci d'avance pour votre aide.

    -----

  2. #2
    Vincent PETIT
    Animateur Électronique

    Re : Programmation ATMEL8535, erreur de compilation inconue pour moi^^

    Bonjour,
    void interrupt[2]capture(){}
    Cette syntaxe me semble bizarre !? Surtout les accolades ouvertes et fermées sans rien dedans.

    Est ce normal ?

  3. #3
    invite29971eb1

    Re : Programmation ATMEL8535, erreur de compilation inconue pour moi^^

    Citation Envoyé par Vincent PETIT Voir le message
    Bonjour,


    Cette syntaxe me semble bizarre !? Surtout les accolades ouvertes et fermées sans rien dedans.

    Est ce normal ?
    ah non, pas du tout normal...

    en gros l'interruption est vide, et un bout de code traine derrière....

    De plus, la syntaxe correcte d'une déclaration d'interruption sous codevision, c'est ça:
    Code:
    interrupt [TIM2_COMP] void timer_comp_isr(void)
    tu as inversé interrupt et void dans la déclaration et je crois que le void dans les paramètres est obligatoire aussi.

    Un bon conseil, prends l'habitude d'écrire un code lisible. Non seulement ça permettra aux autres de comprendre ton code, mais ça te servira grandement à t'y retrouver quand le programme deviendra plus complexe....

  4. #4
    invite85a93e3d

    Re : Programmation ATMEL8535, erreur de compilation inconue pour moi^^

    Merci pour vos réponses, le fait qu'il n'y ait rien entre les accolades c'est que ça m'a sembler inutile de le mettre sachant que le problème ne vient pas de là.

    en effet là ou j'ai appris la syntaxe interrupt[2]capture() fonctionnait, ça doit être une option du compilateur de ne pas être obligé de mettre les void...

    Merci pour vos réponses.

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

    Re : Programmation ATMEL8535, erreur de compilation inconue pour moi^^

    Citation Envoyé par Canaillou2k5 Voir le message
    en effet là ou j'ai appris la syntaxe interrupt[2]capture() fonctionnait, ça doit être une option du compilateur de ne pas être obligé de mettre les void...

    Merci pour vos réponses.
    Sauf que tu as écrit "void interrupt[2]" au lieu de "interrupt[2] void";

    Et comme je le disais, "interrupt[INT1] void" est encore mieux puisque tu sais tout de suite à quoi sert ce vecteur d'interruption.

    Ce sont les accolades après "capture()" qui sont en trop. En effet, elles déterminent la portion de code de ton interruption, donc dans ton programme, celle-ci est vide. Pire, le code a la suite n'est référencé à aucune fonction et donc Codevision se perd.

Discussions similaires

  1. erreur compilation
    Par inviteb7a0f269 dans le forum Électronique
    Réponses: 2
    Dernier message: 22/06/2010, 14h20
  2. [MPLAB / C18] - Erreur de compilation
    Par invite3c35244f dans le forum Électronique
    Réponses: 7
    Dernier message: 20/11/2009, 09h32
  3. [HI-TECH PICC18]-Erreur lors de la compilation
    Par invite3c35244f dans le forum Électronique
    Réponses: 0
    Dernier message: 20/05/2008, 14h48
  4. Erreur compilation Fortran
    Par invite10295c30 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 01/06/2006, 09h38
  5. Matlab-Compilation-Erreur sous Win 2000
    Par inviteaf2e78df dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 16/10/2005, 14h04
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...