Programmation PIC18F4525
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Programmation PIC18F4525



  1. #1
    Bernibernouille

    Programmation PIC18F4525


    ------

    Bonjour,

    Je me suis mis récemment à la programmation des PIC18F et j'essaie de programmer le 18F4525. J'utilise la platine de mikroe avec le compilateur mikroC.
    Mais j'ai un problème plutôt gênant !
    Quand je veux activer la patte RD4, c'est la RD5 qui s'active. Je n'arrive pas à mettre RD4 à 1

    voici mon programme:
    Code:
    void main()
    {
      TRISA       =    0xFF;                 //PORTA en entrée
      TRISB       =    0xFF;                 //PORTB en entrée
      TRISC       =    0x00;
      TRISD       =    0x00;
      TRISE       =    0xFF;
      PORTA       =    0;
      PORTB       =    0;
      PORTC       =    0;
      PORTD       =    0;
      
    
      for(;;)
      { 
    
        RD4_bit=1;
    
      }
    }
    je sais que il faut configurer les entrée analogique ou digital et autre mais je ne sais pas comment le faire avec les PIC 18F.


    Merci pour votre aide

    P.S.: voici la datasheet du PIC18F4525

    -----

  2. #2
    RISC

    Re : Programmation PIC18F4525

    Salut,

    Lis le chapitre sur les ports d'E/S, sur le convertisseur A/N et sur les comparateurs. Tu trouveras 2 registres qui s'appelle ADCON1 et CMCON. Les broches que tu utilises en digital doivent être déclarées dans ces registres si elles sont aussi multiplexées en entrées analogiques pour le convertisseur A/N ou les entrées des comparateurs.

    a+

  3. #3
    Bernibernouille

    Re : Programmation PIC18F4525

    Si je veut uniquement utiliser mes pattes en digital, je doit donc désactiver ADCON1 et CMCON ?

    donc je doit mettre:
    ADCON1 = 0x00;
    CMCON = 0x00;

    ?

    Merci pour t'on aide

  4. #4
    manstahl

    Re : Programmation PIC18F4525

    Salut,

    je travaille aussi avec un 18F4525 et la platine de mikroelectronika mais en basic.
    au sujet du ADCON1 j'ai cela.

    main:
    ADCON1 = %00001111 ' pour mettre le port A en digital

    si a tous hazard ca peu t'aider

    salutations

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

    Re : Programmation PIC18F4525

    Merci c'est toujours util ^^,

    Mais comment tu sais si c'est ce code là qu'il faut metre ?
    Pcq si je regarde a la page 225, tu active le module A/D !
    Qqun peut m'expliquer comment ca marche ?

    Merci pour votre aide

  7. #6
    manstahl

    Re : Programmation PIC18F4525

    Re.

    La question a du sens .

    J'ai là un bouquin sur les 18F:
    registre ADCON1
    bits de 0 a 3 PCFG0à3 (port config)
    avec la conbinaison 1111 les sorties A/D passent toutes en D

    C'est aussi présenté comme ca sur la datasheet en page 226.


    Mais de toute facon je ne vois pas le rapport avec le portD...
    A propos ce n'est pas juste une confusion? je demande car ca m'est arrivé au début avec cette carte.

    désolé de ne pas pouvoir aider mieux que ca.
    Salut

  8. #7
    umfred

    Re : Programmation PIC18F4525

    vu dans le paragraphe 9.4 de la doc:

    PORTD can also be configured as an 8-bit wide microprocessor
    port (Parallel Slave Port) by setting control
    bit, PSPMODE (TRISE<4>). In this mode, the input
    buffers are TTL. See Section 9.6 “Parallel Slave
    Port” for additional information on the Parallel Slave
    Port (PSP).
    ce qui en clair signifie que si tu met TRISE[4] à 1, tu veux utiliser le Port Parallèlle Esclave (PSP) et dans ce mode, la pin RD4 est utilisé dans sa fonction "PSP write data input" donc en entrée. (cf la table 9-7 de la doc).

  9. #8
    Bernibernouille

    Re : Programmation PIC18F4525

    mais je ne veux pas utilisé la fonction PSP donc je doit la désactivé comment ?
    dans le tableau 9-7, ils disent RDA a 0 pour l'utiliser en I/O mais c'est ce que j'ai mis dasn TRISD non ?

  10. #9
    umfred

    Re : Programmation PIC18F4525

    Comme je l'ai (presque) dit si TRISE [4]= 1 on utilise le PSP, donc si on ne veut pas l'utiliser, il faut logiquement mettre TRISE[4] à 0.

    Or toi tu mets TRISE=0xFF
    il faut donc au moins mettre TRISE=b'1110 1111' (soit 0xEF), mais je t'encourage à vérifier le configuration de ce registre, en particulier les bits 4 à 7 (cf la partie "REGISTER 9-1" à la page 106 du pdf))

  11. #10
    manstahl

    Re : Programmation PIC18F4525

    salut

    Je pense que tu l'a activé avec trisE a FF, du coup le bit trisE<4> est a 1 et donc la fonction psp est en marche.

    je débute, alors a voir.

  12. #11
    Bernibernouille

    Re : Programmation PIC18F4525

    donc si je comprends bien je dois mettre ça comme code:
    Code:
    void main()
    {
      TRISA       =    0xFF;                 //PORTA en entrée
      TRISB       =    0xFF;                 //PORTB en entrée
      TRISC       =    0x00;
      TRISD       =    0x00;
      TRISE       =    0xEF;
      PORTA       =    0;
      PORTB       =    0;
      PORTC       =    0;
      PORTD       =    0;
      
    
      for(;;)
      { 
    
        RD4_bit=1;
    
      }
    }
    Et ça devrait fonctionner. Mais le problème c'est que ça ne marche pas
    Mais je crois que cette fois si le problème ne vient pas du code. Pour tout vous dire, j'utilise le PIC en version SMD et je branche les pattes RB7 RB7 MCLR VCC et GND à ma platine de programmation. Je constate que maintenant plus aucun PORT ne réagit ! Avant ça fonctionnait sauf pour RD4, mais maintenant plus rien ne fonctionne
    Qqun a une idée pour savoir si le PIC est naz ou pas ?

  13. #12
    umfred

    Re : Programmation PIC18F4525

    En fait, il faut TRISE=0xF (les 3 bits de poids forts de ce registre sont en lecture seule, et lu à 0 par défaut).

    Ensuite, pour savoir si ton pic marche encore, est-ce que la programmation se fait bien ? (pas de message d'erreur lors de la programmation ?)
    Si la programmation marche, est-ce qu'une lecture de la programmation donne le même code que ce que tu lui as programmé?
    Quelle platine de programmation utilises-tu ? sur certaines, il y a un cavalier pour indiquer si tu utilise l'ICSP (In-Circuit Serial Programming) ou non.
    Comment relies-tu le PIC à la platine (fils soudés directement sur le PIC ? cordons ?)

  14. #13
    Bernibernouille

    Re : Programmation PIC18F4525

    Pour la platine j'utilise esayPIC5 de mikroe. Pour la liaison, c'est du bricolage, j'utilise une nape qui vient se brocher sur le support DIP40 de la platine. Je n'ai pas d'erreur lors de la programmation et la lecture indique pas de différence donc en soit rien n'indique que le PIC est naz. juste que le programme ne tourne pas. et vu la simplicité de ce que je lui demande je me demande ou est la faute !

    Mais comme je n'utilise pas le PORTE dans mon projet, je peut alors ne pas mettre TRISE? il se met a 0 par defaut ?

  15. #14
    umfred

    Re : Programmation PIC18F4525

    Citation Envoyé par Bernibernouille Voir le message
    Pour la platine j'utilise esayPIC5 de mikroe. Pour la liaison, c'est du bricolage, j'utilise une nape qui vient se brocher sur le support DIP40 de la platine. Je n'ai pas d'erreur lors de la programmation et la lecture indique pas de différence donc en soit rien n'indique que le PIC est naz. juste que le programme ne tourne pas. et vu la simplicité de ce que je lui demande je me demande ou est la faute !
    c'est juste le code avec la boucle infini qui met à 1 RD_4 ? essai de mettre un "LATD =0;" avant "PORTD = 0;"

    Mais comme je n'utilise pas le PORTE dans mon projet, je peut alors ne pas mettre TRISE? il se met a 0 par defaut ?
    même si on ne l'utilise pas, il est toujours préférable de l'initialiser pour être sûr des valeurs

  16. #15
    Bernibernouille

    Re : Programmation PIC18F4525

    Problème résolu pour mon PIC il n'es pas naz mais juste le quartz qui c'est désoudé ^^,
    Par contre pas de résultat pour RD4 ! je continue à cherhcer ...

    Mais en tout cas merci pour votre aide qui m'a quand même permis de mieux comprendre les PIC18F

  17. #16
    umfred

    Re : Programmation PIC18F4525

    Quelques pistes pour t'aider:

    As-tu essayé de mettre PORTD = 0x10 (ce qui revient à RD4_bit=1 normalement) ? on sait jamais, il y a peut être une subtilité sur ce port

    As-tu aussi essayer avec les autres sorties ? (le port C et les autres du port D)?

    As-tu également essayer de voir si, avec le débogueur, RD4 passait à 1 ou pas ? si il ne passe pas à 1, il doit encore y avoir un problème de configuration (ou de déclaration de RD4_bit peut-être) . Tant que dans le débogueur, le RD4 ne bascule pas, inutile de charger le programme dans le pic

  18. #17
    Bernibernouille

    Re : Programmation PIC18F4525

    Toute les autres patte fonctionne correctement, enfin j'ai tester le PORTC et les autre du PORTD mais pas RD4 !
    Je commence a desespérer

  19. #18
    umfred

    Re : Programmation PIC18F4525

    Avec le débogueur aussi ? pas de réaction de RD4 ?
    (nota: je précise, j'appelle debogueur la simulation que tu peut faire en pas à pas dans l'environnement de développement sans charger le programme dans un PIC)

  20. #19
    Bernibernouille

    Re : Programmation PIC18F4525

    le debeugeur que j'ai avec mon compilateur est un qui programme le PIC et qui simule avec le PIC.

  21. #20
    manstahl

    Re : Programmation PIC18F4525

    SALUT

    Question idiote, il se passe quoi quand tu programmes ta sortie sur D5? ala place de D4

  22. #21
    Bernibernouille

    Re : Programmation PIC18F4525

    RD5 s'active comme si de rien n'etait ^^,
    Mais j'ai essayer de simuler mon programme avec le simulateur ISIS et avec le simulateur, RD4 s'active correctement donc j'en déduit que mon problème provien de mes soudure ou du PIC.

    Je vérifie tout ca et je vous tien au courant. (si c'est ca j'aurrai l'air bête !)

  23. #22
    umfred

    Re : Programmation PIC18F4525

    Citation Envoyé par Bernibernouille Voir le message
    le debeugeur que j'ai avec mon compilateur est un qui programme le PIC et qui simule avec le PIC.
    Pour info: selon la doc de mikroC (p42), tu as le choix entre 2 type de debogueur :
    - le software PIC simulator
    - le In-Circuit Debugger

    Il faut choisir le 1er pour vérifier le soft seul sans les éventuels soucis hard

  24. #23
    Bernibernouille

    Re : Programmation PIC18F4525

    Problème résolu. C'etait juste un courcircuit entre la patte RD4 et un autre.

    Merci pour votre aide précieuse

  25. #24
    manstahl

    Re : Programmation PIC18F4525

    Salut,

    je me dit toujours que c'est quand il y a des problèmes que l'on apprend des truc neuf.

    Bonne continuation

Discussions similaires

  1. Controle moteur brushless pic18f4525
    Par invite78ff91c3 dans le forum Électronique
    Réponses: 4
    Dernier message: 13/05/2010, 09h08
  2. PIC18F4525 + Programmateur Schaer+ + WinPIC
    Par inviteac0c62a8 dans le forum Électronique
    Réponses: 2
    Dernier message: 20/01/2009, 13h23
  3. programmation
    Par invite70772835 dans le forum Électronique
    Réponses: 13
    Dernier message: 04/04/2007, 18h29
  4. Programmation
    Par invite7e1f35e9 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 24/04/2006, 13h33
  5. programmation en C
    Par esboy dans le forum Électronique
    Réponses: 15
    Dernier message: 14/04/2006, 11h32
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...