aide programmation C
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

aide programmation C



  1. #1
    invite74119562

    aide programmation C


    ------

    Bonjour,

    pour un test d'un afficheur LCD alphanumérique je désire faire une horloge (non précise.) avant d'utiliser une autre horloge (CI) gérant tout ce qu'il faut (de chez maxim)

    Il y a une erreur dans mon programme, mais je ne la comprend pas.
    Pouvez-vous m'expliquer plz? Merci.
    Je travail avec un AVR : atmega8
    L'erreur est celle-ci :
    c:/winavr-20080430/lib/gcc/../../avr/include/avr/iom16.h:47:4: error: #error "Attempt to include more than one <avr/ioXXX.h> file."
    In file included from ../test_horloge.c:7:



    #define F_CPU 8000000UL // défini la clock à défini en tt premier

    // Inclure la bibliotheque de fonctions

    #include <avr/io.h>
    #include <avr/iom16.h>
    #include <util/delay.h>
    #include <avr/delay.h>
    #include "lcd.h"

    unsigned char seconde=00;
    unsigned char minute=00;
    unsigned char heure=00;

    int main(void)


    {

    delay_ms(1000);

    seconde++;

    if (seconde ==60);
    {
    seconde=00;
    minute=minute+1;

    if (minute==60);
    {
    minute=0;
    heure=heure+1;
    }
    if (heure==24);
    {
    heure=00;
    }
    }



    lcd_gotoxy(0,1);
    lcd_puts("Time:");

    lcd_gotoxy(0,7);
    lcd_puts(heure);
    lcd_gotoxy(0,9);

    lcd_puts(":");
    lcd_gotoxy(0,10);
    lcd_puts(minute);

    lcd_gotoxy(0,12);
    lcd_put(":");
    lcd_gotoxy(0,13);
    lcd_puts(seconde);
    }

    -----

  2. #2
    SuperTux

    Re : aide programmation C

    Salut,

    #include <avr/iom16.h>
    Essaye de supprimer cette ligne, cela devrait être bon. Elle correspond à la définition des IO pour AtMega16. Le "#include <avr/io.h>" inclus automatiquement le bon .h à la compilation, en se servant du type donné ("-mmcu=atmega8" par exemple).

  3. #3
    invite74119562

    Re : aide programmation C

    Salut,

    j'ai enlevé comme proposé, mais rien n'y fait.

    J'ai tjs cette erreure :
    c:/winavr-20080430/lib/gcc/../../avr/include/avr/iom16.h:47:4: error: #error "Attempt to include more than one <avr/ioXXX.h> file."


    Si quelqu'un pouvais m'aider

  4. #4
    SuperTux

    Re : aide programmation C

    Tu passes bien "-mmcu=atmega8" comme argument à gcc-avr ?

    Essaye aussi un "#undef __AVR_ATmega16__" au dessus du "define #F_CPU".

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

    Re : aide programmation C

    Salut,

    je vous remercie, mais rien n'y fait...je n'y arrive tjs pas...snif.
    J'ai tjs la même erreur




    Merci de votre aide.

  7. #6
    invite74119562

    Re : aide programmation C

    Salut J'ai le même problème pour un simple programme pour atmega8 qui met bonjour au LCD.
    Avez-vous résolu le problème?
    Ca m'interesse...

  8. #7
    SuperTux

    Re : aide programmation C

    Hum, hum, réessayons

    Il n'y aurait pas un #include <avr/iom16.h> dans "lcd.h" (ou "lcd.c") ?

  9. #8
    invite74119562

    Re : aide programmation C

    Salut,

    j'ai remplacé tout ce qui était iom16.h par iom8.h (et dans le .c et dans le .h)
    Mais rien n'y fait, ça me met 23 erreurs au lieu d'une seule...

    Je ne comprend vraiment pas pourquoi...(mon composant est quand même bien défini)

  10. #9
    invite74119562

    Re : aide programmation C

    A mon grand étonnement je n'ai plus qu'une erreur,

    j'ai remplacé iom16 par iom8 partout
    Des librairies se sont bien ajoutées (les include <...> je parles)
    Mais j'ai encore cet erreur :

    c:/winavr-20080610/lib/gcc/../../avr/include/avr/iom8.h:41:4: error: #error "Include <avr/io.h> instead of this file."

    J'ai supprimer le <io.h> de la fonction principale (je pensais que comme cette librairie était appelée par d'autre fonction, je pouvais l'enlever) mais si je le remet j'ai toujours les 23 erreurs.

    Merci de votre aide

  11. #10
    invite74119562

    Re : aide programmation C

    Bonjour Alors voila,

    je vais vous montrer mon code

    Code:
    #include <avr/io.h>
    #include <avr/iom8.h>
    
    #include "lcd.h"
    #include "global.h"
    
    int main()
    {
    
      lcd_init(LCD_DISP_ON);
          
    /*Ecriture*/
    
     while(1)
     {
       lcd_puts("bonjour Thibault");
       lcd_gotoxy(0,1);
       lcd_puts("Ca marche..fenzj?!");
     }
    
    }
    Il n'est pas fort compliqué tout de même

    et voila mes erreurs

    Code:
    Build started 17.1.2009 at 19:38:21
    avr-gcc.exe -mmcu=atmega8 -Wl,-Map=OpenFire.map OpenFire.o lcd.o     -o OpenFire.elf
    lcd.o: In function `toggle_e':
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:87: undefined reference to `sbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:90: undefined reference to `cbi'
    lcd.o: In function `lcd_write':
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:99: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:104: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:114: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:118: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:123: undefined reference to `outp'
    lcd.o: In function `lcd_read':
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:137: undefined reference to `sbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:138: undefined reference to `cbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:139: undefined reference to `sbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:142: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:144: undefined reference to `sbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:146: undefined reference to `inp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:147: undefined reference to `cbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:151: undefined reference to `sbi'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:153: undefined reference to `inp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:154: undefined reference to `cbi'
    lcd.o: In function `lcd_init':
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:311: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:316: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:320: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:324: undefined reference to `outp'
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:328: undefined reference to `outp'
    lcd.o: In function `lcd_puts_p':
    C:\Documents and Settings\User\Bureau\OpenFire\OpenFire\default/../lcd.c:298: undefined reference to `PRG_RDB'
    make: *** [OpenFire.elf] Error 1
    Build failed with 23 errors and 0 warnings...
    Si quelqu'un pouvait m'aider car ça m'embête pour un code si simple
    J'ai déjà regardé sur le net, il y a des choses similaires, mais je ne comprend pas tout.

    Merci de votre aide

  12. #11
    SuperTux

    Re : aide programmation C

    Tu ne doit pas avoir de #include <avr/iom8.h> (ni de iom16.h) mais uniquement des #include <avr/io.h>. Gcc-avr se debrouille après à l'aide de l'argument "-mmcu=atmega8" qui lui est passé sur sa ligne de commande pour inclure le bon .h (si tu regarde le source de io.h tu veras qu'il ne contient en faite que des inclusions conditionnels).

  13. #12
    invite74119562

    Re : aide programmation C

    Hello,

    merci, mais j'ai toujours ces erreurs. Même si je retire avr/iom8.h partout ça me refait 23 erreurs.
    et ce sont les même erreurs, donc ce n'est pas ça.

    Merci quand même

  14. #13
    Seb.26

    Re : aide programmation C

    Modifie les .h en question pour y inclure un #define style "singleton"

    Code:
    #idndef DEF_ioXXX
    #define DEF_ioXXX
    
    ... fichier d'origine ...
    
    #endif
    Normalement, tous les fichiers .h devraient déjà avoir ça, mais on dirait bien que non dans ton cas ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  15. #14
    invite19f369ec

    Re : aide programmation C

    si c'est ca le pb, je me permets de poser la question: il coute combien ce logiciel?
    (desolé d'etre negatif)

  16. #15
    invite74119562

    Re : aide programmation C

    C'est avrstudio, c'est gratuit ^^
    Mais ce que je trouve bizar c'est que le programme compile chez un pote et pas chez moi, donc je suppose que c'est une affaire d'option du compilateur!

    Je ne sais pas comment configurer au mieux avrstudio.

    Merci

  17. #16
    invite3c70d42d

    Re : aide programmation C

    Bonjour,
    Les erreurs sont provoquées par la compilation de lcd.c; peux tu fournir les sources de lcd.h et lcd.c ?
    @+.

Discussions similaires

  1. aide programmation en C (16f)
    Par invite82c9cf21 dans le forum Électronique
    Réponses: 6
    Dernier message: 03/06/2008, 19h04
  2. AIDE pic18f452 Programmation en C
    Par invite8916ae1c dans le forum Électronique
    Réponses: 6
    Dernier message: 15/05/2008, 19h29
  3. aide a la programmation fanuc
    Par invite53061120 dans le forum Technologies
    Réponses: 10
    Dernier message: 09/04/2008, 18h39
  4. aide en programmation en c
    Par invite7670cc44 dans le forum Électronique
    Réponses: 0
    Dernier message: 12/06/2007, 16h45
  5. aide programmation python
    Par Elek dans le forum Logiciel - Software - Open Source
    Réponses: 30
    Dernier message: 10/06/2006, 12h58
Découvrez nos comparatifs produits sur l'informatique et les technologies.