Programmation pic avec ICD3
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Programmation pic avec ICD3



  1. #1
    invite45ac3043

    Question Programmation pic avec ICD3


    ------

    Bonjour,

    Je me suis inscrit sur ce forum car j'ai 16 ans et souhaite me lancer dans la prog de PICs.
    J'ai donc commencé par créer un programme TRES simple afin de mettre à 1 tous les bits du port C de mon PIC (18f45k22).
    Le transfert du programme a l'ai de bien se dérouler. Mais une fois celui-ci terminé... rien ne se passe... Cela va faire 2 jours que je cherche mai je n'ai toujours pas trouvé pourquoi...
    Voici le programme réalisé:

    Code:
    #include "xc.h"
    
    #include <stdio.h>
    #include <stdlib.h>
    
    #define _XTAL_FREQ      8000000
    
    void main() {
    
        ANSELC = 0;
    
        TRISC = 0;
    
        PORTC = 0x00;
    
        while (1) {
                PORTC = 0b11111111;
        }
    
    }

    J'espère donc que quelqu'un sera en mesure de m'aider ici...


    Merci d'avance.

    Didier.

    PS: ne sachant pas non plus tres bien me servir de MPLab, je me demande si c'est pas a son niveau qu'il y a un probleme (notamment dans la configuration du quartz peut etre?) Mon cablage est bon, j'en suis sur, j'arrive a le faire fonctionner avec un autre programme développé sous MikroC... Des idées?

    -----

  2. #2
    invite3026ff02

    Re : Programmation pic avec ICD3

    ton programme ne fais rien... alors le pic fais rien

  3. #3
    propic

    Re : Programmation pic avec ICD3

    bonjour,

    essayer ça

    void main() {

    ANSELC = 0;

    TRISC = 0;

    PORTC = 0b11111111;
    }

  4. #4
    minioim

    Re : Programmation pic avec ICD3

    Salut

    Je te suggère déjà d'essayer ton programme sous simulateur (mplab sim) pour vérifier déjà si le programme donne le résultat attendu. Et donc savoir si le soucis vient du transfert/cablage ou du programme.
    Est ce que tu as configuré les fusibles de ton pic? (Les bits de configuration)

    Pour apprendre a te servir de mplab (et apprendre le fonctionnement des pic) je te suggère vivement les cours de bigonoff si tu ne l'as pas deja fait

    Exemple tout bête de problème: le bit de configuration de l'oscillateur.. Par défaut il est sur RC. Or si tu utilises un quartz de 8MHz il faut le changer rapidement sur HS... C'est un risque de destruction du pic. Et ça provoque des fonctionnements... Aléatoire
    Dernière modification par minioim ; 23/12/2013 à 20h31.

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

    Re : Programmation pic avec ICD3

    Tout d'abord, merci à tous pour vos réponses rapides.

    @ propic:
    J'ai essayé, et ca ne fait rien non plus...


    @minioim
    En effet, je pense qu'il s'agit d'un probleme de configuration (principalement le quartz, comme énoncé). Comment configurer ces bits?
    Et en passant, connaitriez-vous des tuto (en francais de préférence) clairs et précis, sur l'utilisation de MPLab X pour de la programmation en C. Car j'ai déjà regardé les cours de Bigonoff, mais ils sont appuyés sur une ancienne version de MPLab, et surtout, ils traitent essentiellement l'assembleur, hors, ayant déjà quelques connaissances en C, et n'ayant que très peu de temps libre, je ne me vois pas me mettre à l'asm...


    Merci d'avance à tous

  7. #6
    invite45ac3043

    Re : Programmation pic avec ICD3

    c'est bon, j'ai trouvé: #pragma config FOSC = XT

    Mais connaitriez-c*vous quand même un site ou toutes ces choses sont expliquées clairement pour du langage C?

    Merci

  8. #7
    minioim

    Re : Programmation pic avec ICD3

    Désolé mais tu ne couperas pas a l'assembleur... Le C n'est qu'une manière pratique de coder un pic. Mais encore faut il savoir comment il fonctionne.... Et pour ça il faut de bonnes connaissances en assembleur. Sans pour autant connaître toutes les astuces de l'assembleur, il te faudra connaitre un minimum. Et pour ça le cours de bigonoff est indispensable. Il ne traite pas que d'assembleur, il parle du fonctionnement des pic en utilisant l'assembleur.

    Je ne peux pas t'aider sur mplabx et te suggère de suivre le conseil de bigonoff: utiliser une version plus ancienne plus documentée. Il utilise notamment la v5 dans son cours. J'utilise la v8 et n'ait aucun mal a suivre son cours (la transposition est directe) mais mplabx est trop différent.

  9. #8
    invite45ac3043

    Re : Programmation pic avec ICD3

    Je me doutais un peu de ta réponse à propos de l'assembleur... Ce qui me rebute dessus, est le temps qu'il me faudra pour bien le maîtriser, mais aussi et surtout, le fait que l'an prochain je pars en licence électronique, et j'ai peur qu'on nous fasse aussi travailler sur d'autres uC. J'ai donc peur de finir par tout me mélanger, et au final apprendre encore moins que si j'en avais fait qu'un...

    Que me conseilles-tu? Pense-tu qu'il soit vraiment indispensable de passer par le cours asm de Bigonoff? N'y a-t-il pas d'autres sites ou livres dans lesquels je puisse acquérir le nécessaire pour programmer en C sans trop m'attarder sur l'asm?

  10. #9
    propic

    Re : Programmation pic avec ICD3

    a mon avis pour débuter il y pas mieux que l'assembleur, pour connaitre le fonctionnement intrne d'un pic par exemple les accès au registres de la RAM, comment fonctionne
    les interruptions, les timers et de faire qq petit programme ensuite vous pencher sur le C

  11. #10
    minioim

    Re : Programmation pic avec ICD3

    Rassure toi, avec 1 h ou 2 par soir j'ai fait la première partie du cours de bigonoff en 1 semaine. Sans rentrer trop dans le détail (en cas de doute tu reviens dessus après) les 4 autres parties sont a lire en fonction de tes besoins. Exemple : je code sur 16f877, j'ai lu la première partie. Et je pioche dans la seconde ce dont j'ai besoin au fur et a mesure. Il n'y a que la première qui explique le fonctionnement général des pic.

    Pour le fait d'utiliser ensuite d'autres micro... Je crois que de toute façon les fonctionnement sont semblables donc tu perdras pas ton temps.... Et le C... Encore une fois sans l'assembleur tu n'iras pas loin

    Vas y tu perdras pas ton temps et c'est intéressant
    Par contre utilise au moins mplab v8 (la 5 ne gère pas les ICD3)

  12. #11
    propic

    Re : Programmation pic avec ICD3

    je suis d'accord avec minioim, en faite il a raison

  13. #12
    invite29971eb1

    Re : Programmation pic avec ICD3

    Citation Envoyé par minioim Voir le message
    Désolé mais tu ne couperas pas a l'assembleur... Le C n'est qu'une manière pratique de coder un pic. Mais encore faut il savoir comment il fonctionne.... Et pour ça il faut de bonnes connaissances en assembleur. Sans pour autant connaître toutes les astuces de l'assembleur, il te faudra connaitre un minimum. Et pour ça le cours de bigonoff est indispensable. Il ne traite pas que d'assembleur, il parle du fonctionnement des pic en utilisant l'assembleur.
    Foutaises, on est au XXIème siècle et 90% des micros se programment directement en C....

  14. #13
    minioim

    Re : Programmation pic avec ICD3

    Et alors? C'est pas parce que ça se programme en C que tu peux le faire sans connaitre le fonctionnement du pic.
    Or ce fonctionnement est beaucoup plus clair si tu as quelques notions d'assembleur.
    Ça c'est le premier point.
    Le second c'est que 90% ne veut pas dire 100. Donc l'assembleur est intéressant a connaître un minimum.
    Troisième point : aucun pic n'est réellement codé en C. Le compilo essaye tant bien que mal de transformer le code C en assembleur (qui n'est qu'une correspondance entre des mots binaire et des mots "en lettres", sans autre intermédiaire.)
    Au final le c permet de faire un code un peu plus pratique a écrire mais Beaucoup plus volumineux et lent.

    Bilan? Le c est transformé en assembleur qui est le vrai langage des pic. Donc... Savoir ce que devient ton code en c me parait relativement important!
    Ça revient a apprendre le fonctionnement d'un système avant de s'en servir... 21eme siècle ou pas les pic fonctionnent toujours en assembleur...
    Dernière modification par minioim ; 24/12/2013 à 12h51.

  15. #14
    luc_1049

    Re : Programmation pic avec ICD3

    Bonjour

    Il n'est pas possible à mon avis de ne jamais avoir à faire à l'assembleur :
    -c'est bien de connaître les caractéristiques du micro, savoir qu'il a une pile de taille limitée ce qui limite ne nombre de sous pg imbriqué ,
    -connaître comment se fait dans le détail le fonctionnement lors du passage en interruption ou lors de la sortie,
    -savoir coder une portion de code en assembleur par exemple pour optimiser une routine d'interruption dans le cas d'usage spécifique très contraint,
    -savoir comment au besoin appeler de l'assembleur à partir du C, comment son passer les paramètres, ce que fait un return en assembleur, ajouter un nop dans le C pour placer le point d'arrêt là où l'on veut sur un micro qui a du prefetch,
    -savoir livre du code compilé dans un listing C avec l'assembleur généré pour comprendre un bug éventuel du compilateur, optimisé le code C en le faisant en assembleur si on n'a pas le compilateur payant optimisé en terme de code généré,
    -comprendre et constater qu'en fonction de la portée d'une variable en C globale, statique, ... le compilateur devra faire appel à du code assembleur plus ou moins long,
    -comprendre que compte tenu des limitations en taille de pile et mémoire par exemple il n'est pas possible de faire de l'allocation dynamique de mémoire sur certains micro,

    Le logiciel embarqué n'est pas du logiciel windows le hardware ne doit pas être oublié.
    Qu'est ce que c'est que le mot de configuration, le reset, la gestion des horloges, du mode low power, ... ?

    Tôt ou tard si l'application sort du printf "hello" l'assembleur sera à considérer.

    cdlt

  16. #15
    invite105cee1c

    Re : Programmation pic avec ICD3

    Citation Envoyé par ftorama Voir le message
    Foutaises, on est au XXIème siècle et 90% des micros se programment directement en C....
    je pense la même chose .
    l'assembleur est bien pour l'optimisation .

    sinon pour ton soucis je ne vois pas dans ton programme ou tu configures les bits de configuration ?

  17. #16
    minioim

    Re : Programmation pic avec ICD3

    Avec mplab tu peux ne pas le faire dans le code. En c en tout cas. En assembleur je crois que tu en serais forcément passé par le code et donc il aurait eu connaissance des bits de config... Vous voyez? Ya pas besoin De chercher loin pour trouver des arguments qui justifient d'apprendre un Minimum l'assembleur en premier

  18. #17
    invite29971eb1

    Re : Programmation pic avec ICD3

    Citation Envoyé par minioim Voir le message
    Avec mplab tu peux ne pas le faire dans le code. En c en tout cas. En assembleur je crois que tu en serais forcément passé par le code et donc il aurait eu connaissance des bits de config... Vous voyez? Ya pas besoin De chercher loin pour trouver des arguments qui justifient d'apprendre un Minimum l'assembleur en premier
    Encore une fois, les registres, les bits de config ou la structure de tel ou tel périphérique n'ont rien à voir avec l'assembleur. Coder en C ne veut pas forcément dire utiliser des APIs de très haut niveau (comprendre très éloigné du matériel). On peut très bien coder en C sans utiliser une API (et je l'ai fait pendant des années) et on connait très bien le système, sans compter qu'on code bien plus vite qu'en assembleur et bien plus efficacement.

  19. #18
    minioim

    Re : Programmation pic avec ICD3

    Je precisais bien volontairement que je ne sais pas si tu peux te passer de coder les bits de config en assembleur comme tu peux le faire en C, c'est probablement bien possible
    Ce que je soutiens depuis le début du sujet (relisez bien) c'est pas qu'il faut coder en assembleur! C'est que pour démarrer avec les pic, lire les bases du cours et avoir des notions assembleur me semble important surtout quand le seul vrai cours de référence disponible est celui de bigonoff... En assembleur.

    Par contre bien sur qu'on code plus vite en C, c'est d'ailleurs ce que je fais parce que je suis un peu pris par le temps pour un projet en cours. Par contre justement le code est moins efficace qu'en assembleur ! Et beaucoup plus volumineux....

  20. #19
    invite29971eb1

    Re : Programmation pic avec ICD3

    Citation Envoyé par minioim Voir le message
    Je precisais bien volontairement que je ne sais pas si tu peux te passer de coder les bits de config en assembleur comme tu peux le faire en C, c'est probablement bien possible
    Ce que je soutiens depuis le début du sujet (relisez bien) c'est pas qu'il faut coder en assembleur! C'est que pour démarrer avec les pic, lire les bases du cours et avoir des notions assembleur me semble important surtout quand le seul vrai cours de référence disponible est celui de bigonoff... En assembleur.

    Par contre bien sur qu'on code plus vite en C, c'est d'ailleurs ce que je fais parce que je suis un peu pris par le temps pour un projet en cours. Par contre justement le code est moins efficace qu'en assembleur ! Et beaucoup plus volumineux....
    Parce que ton micro à la base n'a pas été conçu pour le C, ce qui lui vaut d'ailleurs d'être toisé par les responsables de Gcc....

    Un micro prévu pour le C a au minimum une taille de stack configurable. En allant plus loin, on peut la reloger dans la RAM, ainsi que le heap. En poussant plus loin, on retrouve des instructions assembleur directement équivalentes à des commandes C, les types C standards directement gérés par le micro, etc, etc.

Discussions similaires

  1. Programmation LVP d'un Pic avec ICD2/ICD3
    Par invitefbe9ec51 dans le forum Électronique
    Réponses: 1
    Dernier message: 02/05/2012, 14h44
  2. Probleme avec ICD3
    Par invite2d9e7c03 dans le forum Électronique
    Réponses: 12
    Dernier message: 19/01/2011, 23h34
  3. Probleme pour debuguer un 18f26K20 avec un ICD3
    Par invite52e85ae4 dans le forum Électronique
    Réponses: 2
    Dernier message: 18/05/2010, 09h28
  4. [PIC] - Programmation d'un PIC18F1xK50 avec un ICD3
    Par invite3c35244f dans le forum Électronique
    Réponses: 1
    Dernier message: 01/05/2010, 19h37
  5. [PIC18] - Test liaison SPI avec ICD2 // ICD3
    Par invite3c35244f dans le forum Électronique
    Réponses: 4
    Dernier message: 09/04/2009, 14h08
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...