un problème avec pic 18f2550
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

un problème avec pic 18f2550



  1. #1
    ranouch

    un problème avec pic 18f2550


    ------

    salut ;
    j'ai un problème depuis hier je n'arrive pas à le résoudre, quand je charge le programme suivant dans isis avec un pic 16f877 ça marche, c'est à dire la led du pin_A0 s'allume,mais quand je le charge dans isis avec un pic 18f2550 sa ne m'arche pas ( et bien sur j'ai changé #include <16f877.h> en #include <18f2550.h> )
    voila le programme :
    #include <16f877.h>
    #use delay (clock=2000000)
    void main()
    {
    output_high(PIN_A0);
    delay_ms(100);

    }

    j'ai essaie plusieurs méthode mais ça donne rien, donc est ce que il y a une chose spécifique que je dois faire avec le pic 18f2550 dans le programme ou bien c'est un problème avec le pic dans isis ??? (et dans le net je trouve rien)
    aider moi SVP .... :'(

    -----

  2. #2
    invite03481543

    Re : un problème avec pic 18f2550

    Bonsoir,

    pourquoi 2MHz?
    Comment avez-vous configurer les fusibles de config?

    Je ne connais pas votre compilateur mais bon je ne vois aucune declaration TRIS pour le sens du port puis mise du port a 1, bref un code obscur a mes yeux, sans queue ni tete....
    D'autant que A0 est aussi un port ADC qui necessite une config la plupart du temps.
    Dernière modification par HULK28 ; 23/02/2012 à 20h22.

  3. #3
    ranouch

    Re : un problème avec pic 18f2550

    Merci pour votre réponse rapide
    je sais qu'il manque les configurations des ports et du convertisseur... c'est pas ça ma question!!!! c'est juste un programme pour tester le pic dans isis, ce même programme fait allumer la diode du pin_A0 dans le pic 16f877, mais pas dans le pic18f2550, ce qui n'est pas normale !!! j'ai surement un problème que n'arrive pas à le voir dans le compilateur !!!!

  4. #4
    ranouch

    Re : un problème avec pic 18f2550

    et mon compilateur est ccs c V.013

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

    Re : un problème avec pic 18f2550

    Salut,
    Citation Envoyé par ranouch Voir le message
    Merci pour votre réponse rapide
    je sais qu'il manque les configurations des ports et du convertisseur... c'est pas ça ma question!!!! c'est juste un programme pour tester le pic dans isis, ce même programme fait allumer la diode du pin_A0 dans le pic 16f877, mais pas dans le pic18f2550, ce qui n'est pas normale !!! j'ai surement un problème que n'arrive pas à le voir dans le compilateur !!!!
    Ecoute ce que l'on te dit...ou fait le tout seul...
    ISIS est un simulateur qui tient compte des initialisations des registres. Ne t'attend pas à voir quoique ce soit fonctionner sans :

    1/ lire la datasheet
    2/ initialiser un minimum de registres internes

    Tout est normal, le compilateur fait son job ainsi que le simulateur.
    Un PIC ne s'initialise pas en 2 lignes de code...cherche dans le forum et sur le site de CCS tu trouveras des exemples

    a+

  7. #6
    ranouch

    Re : un problème avec pic 18f2550

    d'accord alors j'ai fais ce que vous avez demander, alors voila mon programme :
    #include <18F2550.h>
    #fuses HS, NOWDT,BROWNOUT, PUT, NOLVP, CPUDIV1
    #use delay(clock=20000000)

    void main(void)
    {

    while(1)
    {
    output_high(PIN_A4);
    delay_ms(500);
    output_low(PIN_A4);
    delay_ms(500);
    }

    }
    un tel programme devrait marcher non!!!! et bin ça ne marche pas il se compile sans faute mais lorsque je le charge dans le pic 18f2550 dans isis la diode ne s'allume pas!!!!!

  8. #7
    flyingrock

    Re : un problème avec pic 18f2550

    Bonjour,

    J'ai eu même soucis mais avec un 18F4620 alors que le 16F877A fonctionnait sous ISIS, met la broche MCLR au VCC via une 10k et ça devrait le faire partir.

    @+

  9. #8
    ranouch

    Re : un problème avec pic 18f2550

    ouiiii,ça marche, merci infiniment

  10. #9
    ranouch

    Re : un problème avec pic 18f2550

    mais,est ce que je peux s'avoir pourquoi??? une explication svp!!!

  11. #10
    flyingrock

    Re : un problème avec pic 18f2550

    Je pense plutôt que c'est de laisser la broche MCLR en l'air qui n'est pas normal, la mettre a 1 me semble plus logique, alors pourquoi ça marche avec le 16f877A, je sais pas .

    @+

  12. #11
    ranouch

    Re : un problème avec pic 18f2550

    merci en tout cas )))

  13. #12
    ranouch

    Re : un problème avec pic 18f2550

    j'ai un autre problème pourquoi l'afficheur LCD ne veut pas fonctionner ??? voila mon programme :
    // c'est pour lire une tension analogique et l'afficher sur LCD//

    #include <18f2550.h>
    #fuses hs,nowdt,noprotect,nolvp
    #use delay (clock=2000000)
    #include <lcd.c>
    void main()
    { float u,f1,f2;
    int j ;
    setup_adc_ports(all_analog);
    setup_adc(adc_clock_internal);
    delay_ms(300);
    lcd_init();
    delay_ms(200);
    lcd_putc('\f');
    printf(lcd_putc,"\entree analogique\n");
    lcd_putc("\n");
    delay_ms(500);
    loop:
    j=0;
    while(j<=35)
    { delay_ms(200);
    set_adc_channel(0);
    u=read_adc();
    f1=u;
    f2=f1*5/255;
    u=f2;
    printf(lcd_putc,"\fv=%f",u);
    delay_ms(200);
    j++;}
    printf(lcd_putc,"\fv=%f",u);
    delay_ms(200);
    goto loop;
    }
    une correction svp !!!!
    remarque ce même programme fonctionne bien dans le pic 16f877A , je vais devenir folle !!!
    j'ai même essayé celui la que j'ai trouvé dans le net mais ne marche pas aussi :

    #include <18f2550.h>
    #fuses hs,nowdt,noprotect,nolvp
    #use delay (clock=2000000)
    #include <lcd.c>
    #define use_portb_lcd true

    void main(void)
    {
    int value;
    float x;
    lcd_init();

    printf(lcd_putc,"\fVolt");
    delay_ms(1000);

    setup_adc(ADC_CLOCK_internal);
    setup_adc_ports(all_ANALOG);
    set_adc_channel(0);
    delay_ms(200);

    while(TRUE)
    {
    value=read_adc();
    x=(float)value*5./255.;
    printf(lcd_putc,"\fRA0:%04.2f V",x);
    delay_ms(100);
    }
    }

    je bloque la!! de l'aide je vous en supplie

  14. #13
    invite03481543

    Re : un problème avec pic 18f2550

    Bonsoir,

    evidemment, un clock a 2MHz et une config en HS ca ne peut pas coller.
    @+

  15. #14
    ranouch

    Unhappy Re : un problème avec pic 18f2550

    salut;
    c'est encore moi et je bloque à nouveau
    comment je peux modifier ce programme pour lire 2 valeurs de tension et les affichés sur l'LCD en parallèle :

    #include <18F2550.h>
    #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NO DEBUG,USBDIV,PLL5,CPUDIV1,VREG EN,NOBROWNOUT
    #use delay(clock=48000000)
    #include <LCD420.c>
    void main()
    {
    int value;
    float x;
    lcd_init();
    printf(lcd_putc,"\fREAD");
    delay_ms(100);
    setup_adc(ADC_CLOCK_internal);
    setup_adc_ports(AN0_ANALOG);
    set_adc_channel(0);
    delay_ms(200);
    while(TRUE)
    {
    value=read_adc();
    x=(float)value*5./255.;
    printf(lcd_putc,"\fU:%04.2f V",x);
    delay_ms(100);
    }
    }


    Ce programme me permet de lire une seule valeurs analogique a travers un potentiomètre et l'afficher sur l'LCD et moi je veux lire 2 valeurs analogique de 2 potentiomètre différent et les affichés sur l'LCD

    je sais que je demande trop mais c'est plus fort que moi

    merci de m'aider ou de me donner une piste ou une idée

  16. #15
    umfred

    Re : un problème avec pic 18f2550

    sais-tu au moins à quoi correspondent les fonctions que tu utilises ? et comment elles agissent sur le pic et entre elles ?
    en particulier les fonctions setup_adc_ports(x), set_adc_channel(x), read_adc()

    nota: de plus, en général, un #include s'utilise avec un fichier .h contenant les déclarations des fonctions et non le le fichier .c qui contient les fonctions (mais c'est un détail)
    Dernière modification par umfred ; 07/04/2012 à 18h16.

  17. #16
    ranouch

    Re : un problème avec pic 18f2550

    bien sur que oui:
    setup_adc_ports(x): permet d'initialiser le port en analogique et de préciser quelle entrée va être utilisé pour la
    conversion.
    set_adc_channel(x): permet de sélectionner l'entrée à numériser
    read_adc(): permet de lire le résultat de la conversion
    mais quand j'écrie : setup_adc_ports(AN0_ANALOG); ou bien setup_adc_ports(ALL_ANALOGs); ou bien setup_adc_ports(AN1_ANALOG)
    le programme ne veut pas se compiler il me dit error :undefined identifier AN1 par exemple
    j'ai essaie plusieurs écriture mais ça ne marche pas, si j'ai posé ma question c'est que j'ai bien chercher des solutions avant de vous ennuyez avec mes questions !!!!

  18. #17
    ranouch

    Re : un problème avec pic 18f2550

    j'utilise le compilateur ccs c
    Dernière modification par ranouch ; 07/04/2012 à 18h45.

  19. #18
    umfred

    Re : un problème avec pic 18f2550

    en cherchant dans le fichier 18f2550.h, on trouve les déclarations suivantes:
    Code:
    // Constants used in SETUP_ADC_PORTS() are:
    // First argument:
    #define NO_ANALOGS   0x0F   // None
    #define ALL_ANALOG   0x00   // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1 B4 B0     
    #define AN0_TO_AN11  0x03   // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1 B4       
    #define AN0_TO_AN10  0x04   // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1          
    #define AN0_TO_AN9   0x05   // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3             
    #define AN0_TO_AN8   0x06   // A0 A1 A2 A3 A5 E0 E1 E2 B2                
    #define AN0_TO_AN7   0x07   // A0 A1 A2 A3 A5 E0 E1 E2                   
    #define AN0_TO_AN6   0x08   // A0 A1 A2 A3 A5 E0 E1                      
    #define AN0_TO_AN5   0x09   // A0 A1 A2 A3 A5 E0                         
    #define AN0_TO_AN4   0x0A   // A0 A1 A2 A3 A5
    #define AN0_TO_AN3   0x0B   // A0 A1 A2 A3
    #define AN0_TO_AN2   0x0C   // A0 A1 A2
    #define AN0_TO_AN1   0x0D   // A0 A1
    #define AN0          0x0E   // A0
    #define AN0_TO_AN11_ANALOG     0x03   //!old only provided for compatibility
    #define AN0_TO_AN10_ANALOG     0x04   //!old only provided for compatibility
    #define AN0_TO_AN9_ANALOG      0x05   //!old only provided for compatibility
    #define AN0_TO_AN8_ANALOG      0x06   //!old only provided for compatibility
    #define AN0_TO_AN7_ANALOG      0x07   //!old only provided for compatibility   
    #define AN0_TO_AN6_ANALOG      0x08   //!old only provided for compatibility   
    #define AN0_TO_AN5_ANALOG      0x09   //!old only provided for compatibility   
    #define AN0_TO_AN4_ANALOG      0x0A   //!old only provided for compatibility
    #define AN0_TO_AN3_ANALOG      0x0B   //!old only provided for compatibility
    #define AN0_TO_AN2_ANALOG      0x0C   //!old only provided for compatibility
    #define AN0_TO_AN1_ANALOG      0x0D   //!old only provided for compatibility
    #define AN0_ANALOG             0x0E   //!old only provided for compatibility
    
    // Optional Second argument:
    #define VSS_VDD               0x00              // Range 0-Vdd
    #define VREF_VREF             0x30              // Range VrefL-VrefH
    #define VREF_VDD              0x20              // Range VrefL-Vdd
    #define VSS_VREF              0x10              // Range 0-VrefH
    
    // Constants used in READ_ADC() are:
    #define ADC_START_AND_READ     7   // This is the default if nothing is specified
    #define ADC_START_ONLY         1
    #define ADC_READ_ONLY          6

  20. #19
    ranouch

    Re : un problème avec pic 18f2550

    et ???
    qu'est ce que je suis censé comprendre ????

  21. #20
    umfred

    Re : un problème avec pic 18f2550

    que si tu veux utiliser les entrées analogiques AN0 et AN1, il faut initialiser la fonction setup_adc_ports(AN0_TO_AN1) pour que ça fonctionne et que ton erreur d'identifier soit résolue.

  22. #21
    ranouch

    Re : un problème avec pic 18f2550

    hahhahaahhhaah,que je suis bête
    Merci beaucoup umfred

  23. #22
    ranouch

    Re : un problème avec pic 18f2550

    et comment je fais la différence entre la première conversion du pin AN0 et du pin AN1 ???
    par exemple quand j’écris: value=read_adc(); il va automatiquement lire la conversion analogique du pin AN0, qu'est ce que je dois ecrire pour lire la deuxième valeur analogique du pin AN1 ??

  24. #23
    umfred

    Re : un problème avec pic 18f2550

    tu as pourtant répondu toi-même (indirectement certes) à cette question plus tôt:
    Citation Envoyé par ranouch Voir le message
    bien sur que oui:
    setup_adc_ports(x): permet d'initialiser le port en analogique et de préciser quelle entrée va être utilisé pour la
    conversion.
    set_adc_channel(x): permet de sélectionner l'entrée à numériser
    read_adc(): permet de lire le résultat de la conversion

  25. #24
    ranouch

    Re : un problème avec pic 18f2550

    ouii ouii c'est bon j'ai trouver depuis tout à l'heur , je m'excuse mais je travail sur plusieurs chose de tel façon je me paire un peu des fois
    Merci pour votre soutien

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/10/2011, 23h01
  2. Horloge PIC 18f2550
    Par invite11fdcbbe dans le forum Électronique
    Réponses: 5
    Dernier message: 14/05/2011, 23h46
  3. programmation du pic 18f2550
    Par invite3a1c1685 dans le forum Électronique
    Réponses: 3
    Dernier message: 11/12/2010, 19h22
  4. problème programmation pic 18f2550
    Par invite9f11f281 dans le forum Électronique
    Réponses: 0
    Dernier message: 06/10/2010, 10h29
  5. Pic 18f2550
    Par inviteac09f73c dans le forum Électronique
    Réponses: 1
    Dernier message: 04/04/2007, 13h04
Découvrez nos comparatifs produits sur l'informatique et les technologies.