Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

Langage C et PIC



  1. #1
    cubitus_54

    Lightbulb Langage C et PIC

    Bonjour,

    Jusqu'à présent je développe des programmes sur des PIC avec Flowcode V5.

    Je suis tenté d'essayer de développer en C (c'est un peu par ce que beaucoup ne jures que par ça )

    J'ai des PIC 16Fxx
    J'ai un KITPIC3

    Ne sachant pas par où commencer j'ai installé MPLAB V8 et aussi la version X

    J'ai mis un moment pour comprendre que je n'avais pas de compilateur, j'ai installé celui que j'ai trouvé HI TECH.

    et j'ai essayé de faire clignoter une DEL
    J'y suis arrivé, mais avec bien du mal....

    Les grosses difficultés que j'éprouve sont que les exemples nombreux et variés que l'on peut trouver ne fonctionnent jamais. Pire la syntaxe change d'un exemple à l'autre...

    Par exemple, la configuration du PIC
    #pragma DATA 0x8007, 0x19c4 ne fonctionne pas....

    #pragma config WDT = OFF ne fonctionne pas...

    __CONFIG(FOSC_INTOSC &WDTE_OFF & PWRTE_OFF & ..... ça ca fonctionne...

    Est-ce que chaque compilateur à sa petite syntaxe à lui ?

    Est que les logiciels que j'utilise sont les bons ?

    Que me suggéreriez-vous ?

    Merci

    -----


  2. Publicité
  3. #2
    extremgear

    Re : Langage C et PIC

    oui il ya quelques différence de syntaxe entre les différent compilos, hitec est plus pratique ( enfin c'est mon point de vue) la première syntaxe que tu as utilisé correspond aux compilos microchip MC18 .
    Sinon normalement dans le dossier du compilos hitec il y a quelques examples, bien souvent il faut adapter les fusibles et les registres au Uc utilisé.

  4. #3
    bisou10

    Re : Langage C et PIC

    Pour MPLABX, le compilateur par défaut est XC8 que je te conseille !

    Ensuite, tu as des wizards pour créer un projet en C (depuis MPLabX) qui te mettent *directement* les bons headers, et qui sait adresser to matériel de test: ICD2, ICD3, PICKIT...

    Et oui, chaque compilateur possède sa syntaxe, mais à moins d'avoir un historique/des sources/des amis qui sont sur CCx8 , je te conseille de rester sur celui fournit par défaut
    Dernière modification par bisou10 ; 31/07/2013 à 16h24.

  5. #4
    Jack

    Re : Langage C et PIC

    Dès qu'il qu'il y a une directive #pragma, ça implique que le code ne sera pas portable. ceci explique cela.

    A+

  6. #5
    Aurélien

    Re : Langage C et PIC

    Citation Envoyé par Jack Voir le message
    Dès qu'il qu'il y a une directive #pragma, ça implique que le code ne sera pas portable. ceci explique cela.
    Quel pragmatisme !

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

    Re : Langage C et PIC

    Salut,

    1/ Comme précisé plus haut utilise le compilateur XC8 et MPLAB X (bien plus convivial)

    2/ Pour les bits de configuration (#pragma) ils sont spécifiques à chaque PIC. Il faut lire la documentation mais.....si tu utilises MPLAB X, le code C sera automatiquement généré pour toi ;=)
    Voir la manip ici.

    Je te recommande le WiKi de MPLAB X qui est rempli de captures d'écran.

    Cherches du code sur internet pour ton modèle de PIC ou un proche parent, cela te fera gagner du temps

    a+
    Ma marotte ? les microcontrôleurs ;=)

  9. Publicité
  10. #7
    cubitus_54

    Re : Langage C et PIC

    C'est évident que sans le compilateur XC8 dans MPLAB X il va avoir du mal à fonctionner

    Je vais installer en suivant le tut donné par RISC et essayer avec MPLAB X de faire clignoter une DEL.

    Je vous fais signe quand j'y suis arrivé

  11. #8
    cubitus_54

    Re : Langage C et PIC

    Bonjour à tous,

    J'ai fait mon programme, il fonctionne, mais MPLABX ne veut pas programmer le PIC...

    En utilisant le programme du programmateur PICKIT3 ça fonctionne et la DEL clignote.

    Code:
    Connecting to MPLAB PICkit 3...
    Firmware Suite Version.....01.28.92
    Firmware type..............Unknown Firmware Type
    
    
    Downloading Firmware...
    Downloading RS...
    RS download complete
    Programming download...
    Downloading AP...
    AP download complete
    Programming download...
    Firmware Suite Version.....01.28.92
    Firmware type..............Enhanced Midrange
    
    Target detected
    Failed to get Device ID
    capture.gif

  12. #9
    Aurélien

    Re : Langage C et PIC

    Balance ton schema.
    Ce n'est pas MPLAB qui ne veut pas, c'est ton micro qui n'est pas reconnu.

  13. #10
    PIXEL

    Re : Langage C et PIC

    pour faire clignoter une laide , l'ASM suffit.
    ce qui permet au débutant de sentir COMMENT marche un µC,
    au lieu de le considérer comme une boite magique.

  14. #11
    cubitus_54

    Re : Langage C et PIC

    montage.gif

    Le PIC 1847 n'exista pas sur ISIS j'ai pris un proche pour le schéma

    Je précise qu'avec le programme du programmateur seul KITPIC3 en ICSP je programme sans problème.
    Avec MPLAB 8 j'y arrive aussi, mais pas avec MPLAB X
    Le montage et la connexion ne changent pas entre temps.

    Pour ce qui est de l'assembleur, dans ma jeunesse j'en ai fait "plein" sur Z80, ce n’était même pas de l'assembleur, mais du code machine. J'ai bien aimé, mais je n’ai pas envie de recommencer, c'est quand même long. La finalité n'étant pas simplement de faire clignoter une DEL

  15. #12
    cubitus_54

    Re : Langage C et PIC

    C'est un drôle de bug.... et je ne suis pas seul

    http://www.microchip.com/forums/m693979-print.aspx

    Effectivement en baissant la tension d'alimentation de 5V à 4V la programmation fonctionne...

  16. Publicité
  17. #13
    RISC

    Re : Langage C et PIC

    Salut,

    La diode D1 ne sert à rien...Pour R2 prend une 10K.

    Attention concernant le Pickit3.... ce n'est pas une alimentation. Il fourni très peu de courant.
    Je te recommande de toujours utiliser une alimentation externe (de toute façon tu utiliseras à un moment ou à un autre une alimentation externe)
    Mieux vaut toujours développer avec l'alimentation finale et avoir des conditions strictement identiques à la version définitive, surtout qu'une bonne parite des PB hards viennent de là...

    Peux-tu confirmer que tu utilises bien un PIC16F1827 et pas un PIC16LF1827 ?

    a+
    Ma marotte ? les microcontrôleurs ;=)

  18. #14
    cubitus_54

    Re : Langage C et PIC

    Salut,

    Oui c'est bien un PIC16F1827

    Je suis d'accord que le programmateur n'est pas une alimentation, mais pour les petits projets c'est vraiment pratique. C'est aussi pour éviter de surcharger mon bureau

  19. #15
    RISC

    Re : Langage C et PIC

    Re,

    J'ai fait un test de ton programme sur ma carte PICDEM 2 PLUS (edition noire) avec le PIC16F1827 et un Pickit3, ca marche directement à 5V sans PB, même en debug ;=)
    La carte a sa propre alimentation 5V

    ScreenHunter_16 Aug. 01 19.06.jpg

    Le PB se situe donc bien sur ta carte...
    Tu peux voir le schéma de la carte PICDEM 2 PLUS dans le user guide

    a+

    PS : multiplie par 10 delay si tu veux voir un clignotement ;=)
    Dernière modification par RISC ; 01/08/2013 à 18h11.
    Ma marotte ? les microcontrôleurs ;=)

  20. #16
    cubitus_54

    Re : Langage C et PIC

    J'ai mis une alime à part.

    Ça fonctionne, mais c'est un peu logique vu que je n'utilise plus la fonction d'alimentation qui semble un peu buggé.

    Sinon un truc très basic
    barre.gif

    "Hold in reset" comment ça fonctionne ?

    J’ai à chaque fois ce message que je ne comprends pas vraiment.
    mplab.gif

    La tempo est trop courte, mais ça, c'était pour voir une différence avec le programme précédent, c'est bien vu

  21. #17
    RISC

    Re : Langage C et PIC

    Salut,

    La fonction d'alimentation n'est pas boguée mais il faut comprendre que le Pickit3 fournit très peu de courant...ce n'est pas une alimentation !

    Pour le reste, il suffit de lire la documentation de MPLAB X que tu trouveras dans ce répertoire :
    c:\Program Files (x86)\Microchip\MPLABX\docs\

    Ton Pickit3 ne devrait pas être en mode "programmer to go". Il faut que tu le remettes en mode "normal".

    La meilleure source d'information et la plus descriptive à mon avis est le WiKi de MPLAB X

    a+
    Ma marotte ? les microcontrôleurs ;=)

  22. #18
    cubitus_54

    Re : Langage C et PIC

    Le Wiki de MPLAB X est pas mal, il y a plein d'info...

    Mais je ne trouve pas la solution à mon problème, à savoir une bonne communication avec le programmateur Pickit3

    Sous MPLAB X

    Compilation OK

    Connecting to MPLAB PICkit 3...
    Firmware Suite Version.....01.28.92
    Firmware type..............Enhanced Midrange

    Target device was not found. You must connect to a target device to use PICkit 3.
    Le montage n'a qu'une DEL et il est alimenté par du 5V

    Image1.gif



    La programmation avec le logiciel "PICkit3 Programmer" fonctionne sans problème. (pas en même temps bien évidement)
    Image2.gif

  23. Publicité
  24. #19
    cubitus_54

    Re : Langage C et PIC

    En bidouillant ça, fonctionne...
    je ne sais pas pourquoi ni pour combien de temps...
    Franchement, ca donne pas envie

  25. #20
    RISC

    Re : Langage C et PIC

    Salut,

    Les microcontroleurs, c'est pas une question de bidouille (heureusement quand on sait qu'il y en a 100 à 200 par voiture).
    Les outils c'est pareil...il faut respecter le schéma de cablage de l'ICSP recommandé et les conditions d'utilisation. J'ai travaillé avec des dizaines de PIC différents et avec le Pickit3, l'ICD3 et le real-ice. J'ai également eu des PB mais c'était dans 99% des cas lié à ma carte ou aux bits de configuration.
    Il arrive de temps à autre qu'il y a ait une incompatiblité entre un PIC et un outil. C'est généralement lié à un bug du firmware de l'outil. Il suffit de le mentionner au support technique et si le PB est confirmé il est généralement corrigé dans la release suivante de MPLAB X. (ne pas oublier qu'il y a plus de 1000 PICs différents à gérer pour les outils...)
    Le Pickit3 est un outil très souple mais si tu l'as mis en mode Programmer To Go (ce n'es pas la config par défaut à sa livraison), il FAUT qu'il soit auto alimenté.
    Ce n'est pas la bonne configuration pour ton utilisation. Comme je l'ai déjà mentionné, il faut reprogrammer (si tu ne l'as pas déjà fait) ton Pickit 3 en mode "non Programmer To Go". Cela se fait dans MPLAB X et aussi dans IPE qui est installé en même temps de MPLAB X.
    Tout cela est expliqué dans les manuels de MPLAB X et des outils que tu trouveras dans ce répertoire : c:\Program Files (x86)\Microchip\MPLABX\docs\

    Le fait d'avoir une seule led ne veut rien dire....cela peut aussi ne pas fonctionner avec le Pickit3. De tête il ne fourni que 30mA . C'est marqué dans la doc. Donc si tu ajoutes la consommation du PIC + led (si elle est activée du à une précédente utilisation) tu peux facilement excéder les 30mA...

    C'est la raison pour laquelle je n'utilise jamais le Pickit3 pour alimenter ma carte mais j'utilise toujours une carte avec son alimentation...

    a+
    Ma marotte ? les microcontrôleurs ;=)

  26. #21
    cubitus_54

    Re : Langage C et PIC

    Je suis d'accord avec toi, Mais ce n'est pas toujours simple de mettre en oeuvre des logiciels de ce type.

    Je ne sais pas si c'est cela, mais je viens de voir sur la doc qu'il ne faut pas mettre un condensateur sur l'alim supérieure à 100µF.... Bon, j'avais mis un 220µF, je l'ai changé avec un 10µF...

    Sinon une question sur les tempos

    En lançant l'aide (F1) je vois qu'il y a une fonction delay...

    Mais il n'en veut pas. Je suppose qu'il manque des includes...

    Lesquels mettre et éventuellement ou les trouver pour avoir les fonctions les plus courantes.

    Merci

Sur le même thème :

Discussions similaires

  1. le langage C est t il un langage qui a de l'avenir ?
    Par vince6629 dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 12/11/2014, 12h01
  2. Langage C !!!
    Par IHCAAMEL dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 19/08/2011, 14h43
  3. de langage C en langage assembleur
    Par lobanova dans le forum Électronique
    Réponses: 1
    Dernier message: 14/05/2009, 12h42
  4. PPE : Langage C
    Par Jobaz dans le forum TPE / TIPE et autres travaux
    Réponses: 2
    Dernier message: 03/04/2006, 19h57