IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

besoin d'aide sur la commande d'un lcd par pic 16f877


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Points : 49
    Points
    49
    Par défaut besoin d'aide sur la commande d'un lcd par pic 16f877
    bnj tout le monde ,j'utilise le compiler ccs c, mon but et de convertir un signal analogique et de transmettre le par un rs232 ou tx 433 ,voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #include <16F877.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
     
    #use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7)
    #define LCD_ENABLE_PIN PIN_B0
    #define LCD_RS_PIN PIN_B1
    #define LCD_RW_PIN PIN_B2
    #define LCD_TYPE 2
    #include <lcd.c>
    #define SYNCH_BUTTON    PIN_d0
    float const quantum=5.0/255.0;
    int signal;
    void initialize(void)
     {
    setup_adc(ADC_CLOCK_INTERNAL);//enables the a/d module //and sets the clock to internal adc clock 
    setup_adc(ADC_CLOCK_DIV_32);
     
    setup_adc_ports(ALL_ANALOG);//sets all the adc pins to analog
    set_adc_channel(0); //the next read_adc call will read channel 0
    delay_us(10); //a small delay is required after setting the channel //and before read 
    set_tris_c (0x00);
     
    initialize();
    SET_TRIS_A(0xff);
     
       lcd_init();
       delay_ms(6);
       printf(lcd_putc,"wirless ECG", );                  
          delay_ms(5000);
     
    while(1)
    {
     
    signal=read_adc();//ADC_READ_ONLY);//reads the result of the last conversion
     
    delay_ms(50);
    output_c(signal*quantum);
    if((input(SYNCH_BUTTON)==1))
     {
       printf(lcd_putc,"synchronisation", );
    printf("signal = %2.2F\n\r", signal*quantum);
     }
    }
     
     }
    et voici ce qui m’apparaît comme erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    undefined identifier  lcd_putc
    undefined identifier  lcd_init()

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Inclure un .c me semble bizarre, es-tu sur ce que n'est pas :

    Qu'il faut faire ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Inclure un .c me semble bizarre, es-tu sur ce que n'est pas :

    Qu'il faut faire ?
    nn j'ai changé parau contraire le nombre des erreurs augmente,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File cannot be opened
    not in "C:/PROGRA~1/PICC/drivers/LCD.h"
    ils ont été 2 Error
    maintenant il sont 4 Error

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Ce n'est pas parce que le nombre d'erreur augmente que c'est forcément faux.

    Théoriquement on ne fait JAMAIS d'include de .c
    Tout ce qu'on a besoin d'inclure, ce sont les prototypes grâce au .h

    Si le .h n'existe pas (ce qui est assez étonnant), il suffit alors de déclarer toutes les prototypes des fonctions précédé du mot clé "extern" pour dire au compilateur que les fonctions ne se trouvent pas ici.

    Par contre, pour compiler, il ne faut pas oublier d'inclure le fichier .c dans la commande.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Ce n'est pas parce que le nombre d'erreur augmente que c'est forcément faux.

    Théoriquement on ne fait JAMAIS d'include de .c
    Tout ce qu'on a besoin d'inclure, ce sont les prototypes grâce au .h

    Si le .h n'existe pas (ce qui est assez étonnant), il suffit alors de déclarer toutes les prototypes des fonctions précédé du mot clé "extern" pour dire au compilateur que les fonctions ne se trouvent pas ici.

    Par contre, pour compiler, il ne faut pas oublier d'inclure le fichier .c dans la commande.
    Comment se fait cette déclaration ? je n'ai jamais rencontré ce cas !

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern void lcd_init();
    extern type_de_lcd_putc lcd_put;

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern void lcd_init();
    extern type_de_lcd_putc lcd_put;
    rien n'a changé,le lcd.c c'est apartir des exemples incluent dans picc,
    j'ai creé un nouveau wizart dont il contient les parametres d'un lcd
    c'est ca son ecriture,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Inserted into .c file before main():
     
    #define LCD_TYPE 1
    #include <lcd.c>
     
     
     
    Inserted into .c file in main():
     
     
    void main() {
     
       lcd_init();
     
       lcd_putc("\fReady...\n");
     
       while (TRUE) {
          k=kbd_getc();
          if(k!=0)
            if(k=='*')
              lcd_putc('\f');
            else
              lcd_putc(k);
       }
    }

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    bon,pour le signal, j'ai développé un programme en c permet la conversion du signal ADC et ça marche bien,pour le calcule de fréquence cardiaque,on peut utiliser les interruptions du b0 et le timer 0,j'ai pas pus le développer,mais j'ai un model en mikroc par pic18f et ça marche b1,j'ai pas pu le convertir
    en picc avec le 16f877

Discussions similaires

  1. Besoin d'aide sur la commande sed
    Par veis dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 10/01/2013, 17h41
  2. SQLite besoin d'aide sur les commandes
    Par PyNub dans le forum Général Python
    Réponses: 2
    Dernier message: 10/10/2011, 21h18
  3. besoin d'aide sur envoi de commande par script SSH
    Par threepwood dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 16/03/2010, 17h52
  4. Besoin d'aide sur une commande
    Par debutant75013 dans le forum Linux
    Réponses: 8
    Dernier message: 23/02/2010, 19h15
  5. Réponses: 3
    Dernier message: 23/07/2007, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo