langage pour les pics
Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

langage pour les pics



  1. #1
    inviteff7a2099

    langage pour les pics


    ------

    bonjour,

    je souhaite me mettre a la programmation sur les pic , quel langage est le mieux adapté pour les pic ?

    le basic ?
    le C ?
    l'assembleur ?

    j'ai deja developpe sur les atmel avec ces langages.

    Merci de votre aide.

    -----

  2. #2
    invite3a1051d7

    Re : langage pour les pics

    Bonjour,
    personnellement j'ai commencer par l'assembleur (voir les cours de bigonoff c'est la bible !) je pense que c'est indispenssable pour comprendre comment ça marche ,puis je suis passé au basic que je trouve beaucoup plus facile
    http://www.oshonsoft.com/picgetstarted.html
    pour les petits programmes que je réalise (voir mon site )

    cordialement
    Alain

  3. #3
    invite50cb3aa0

    Re : langage pour les pics

    Bonsoir,

    On ne peut pas dire qu'un langage est meilleur qu'un autre. Tout dépend de ce que tu veux faire et de tes facilités avec tel ou tel langage.

    Pour ce qui est de l'assembleur, il faut bien connaître les instructions et registres du PIC pour coder correctement. Le langage est fastidieux mais c'est le langage le plus proche de la puce. Tu gagnes en rapidité. Si tu dois coder un programme complexe, ça va être plutôt rébarbatif mais j'ai déjà vu des sacrés programmes en assembleur. Pour maîtriser l'assembleur des PICs, LA référence est sans aucun doute le manuel de Bigonoff : http://www.abcelectronique.com/bigon....php?par=1af41. Le manuel est en bas de page.

    A propos du C, le langage est interprété. Il est beaucoup plus lisible pour toi mais doit être compilé pour le PIC. La compilation implique une génération automatique de l'assembleur à partir du C pas toujours bien optimisée mais c'est beaucoup plus agréable à coder. Au niveau des compilos, il y a entre autres en gratuit CC5X pour la famille 16F (limité à 1ko de code ce qui est déjà bien pour commencer) et HI-TECH PICC (limitation de durée à 3 mois). Le site http://hhollard.club.fr/prog_pic_c.htm permet de se faire la main avec CC5X. Sinon il y a les compilateurs de Microchip. Je crois que la famille 18F est optimisée pour le C.

    Pour ce qui est du Basic, je ne l'ai jamais utilisé et je l'ai rarement vu appliqué au PIC.

    Tu peux aussi mixer du C et de l'assembleur.

    J'espère t'avoir un peu éclairé.

    Greg.

  4. #4
    inviteff7a2099

    Re : langage pour les pics

    merci pour vos reponses.

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

    Re : langage pour les pics

    Bonjour,
    Citation Envoyé par alainav1 Voir le message
    puis je suis passé au basic que je trouve beaucoup plus facile
    http://www.oshonsoft.com/picgetstarted.html
    pour les petits programmes que je réalise (voir mon site )
    Surtout pas ce compilateur

    C'est vrai que le prix est intéressant , l'interface est très pratique et que son simulateur est intéressant mais plein d'erreurs sur le compilateur , l'auteur ne répond pas.

    Bonne continuation

  7. #6
    invite3a1051d7

    Re : langage pour les pics

    bonjour,
    j'utilise ce basic pour les pic type 12F675,16F88, et je n'ai encore rencontré aucun probleme ,c'est vrai que mes programme sont simples,si tu pouvais ne donner un exemple d'erreur de compilation (pour connaitre ses limites et tenter de comprendre pourquoi ).
    cordialement
    Alain

  8. #7
    mat64

    Re : langage pour les pics

    Citation Envoyé par FantomX Voir le message
    Pour ce qui est de l'assembleur, il faut bien connaître les instructions et registres du PIC pour coder correctement.
    d'après moi, c'est indispensable, même si l'on code en C ....

    Citation Envoyé par FantomX Voir le message
    A propos du C, le langage est interprété.
    je me permet de corriger une inexactitude : le C est un langage compilé (il est traduit en langage machine par le compilateur). Le Basic est un language interprété (les instructions sont exécutées directement par un programme qui se trouve sur la machine.) Le JAVA est entre les deux : le code source est d'abord "compilé" pour donner du bytecode qui est interprété sur la machine cible.

    Citation Envoyé par FantomX Voir le message
    Tu peux aussi mixer du C et de l'assembleur.
    c'est une très bonne idée je trouve.

    En résumé : ça dépends de ton projet. Assembleur : plus fastidieux, mais plus rapide et plus compact. C : plus facile et plus vite codé.

  9. #8
    invite12b9b963

    Re : langage pour les pics

    Bonjour

    Reponse a la reponse,

    Les basic ne sont pas tous interpretés!!
    Pic basic , proton en ce qui concerne les pic sont compilés
    Visual basic 6.0 peut generer de l'interpreté ou du compilé

    Sinon, pour repondre a la question de base, le C est un très bon langage.
    Je developpe sur microcontroleur et en particulier les pic (16,18,24)
    ( c'est mon job ) et le C est largement utilisé ( en 10 ans de developpement su Micro, un seul code en asm,!!) . Le C permet de faire des codes puissants et LISIBLES. Quand a la rapidité d'execution, les optimiseur des compilateurs font très bien leur boulot. Un code assembleur normal sera moins rapide q'un code C optimisé, et si on optimise le code assembleur, cela devient totalement illisible !!
    De plus, si on souhaite maitriser le timing d'une partie de code, il suffit d'inserer du code ASM dans le programme C, Les compilateurs permettant cette manip.

  10. #9
    invite2d9e7c03

    Re : langage pour les pics

    Bonjour,
    Citation Envoyé par alainav1 Voir le message
    bonjour,
    j'utilise ce basic pour les pic type 12F675,16F88, et je n'ai encore rencontré aucun probleme ,c'est vrai que mes programme sont simples,si tu pouvais ne donner un exemple d'erreur de compilation (pour connaitre ses limites et tenter de comprendre pourquoi ).
    cordialement
    Alain
    16F877
    4Mhz
    Tiens:
    Code:
    Define CLOCK_FREQUENCY = 4
    Symbol pinout = PORTB.1
    Config pinout = Output
    Dim t As Byte  \'demi periode
    Dim tb As Byte  \'demi periode
    Dim th As Byte  \'demi periode
    t = 200
    Const t2 = 400  \'periode
    
    Dim i As Byte
    Dim bit_a_emmetre As Bit
    Dim data As Byte
    
    Dim correctifh(7) As Byte
    Dim correctifb(7) As Byte
    \'correctifh(0) = 38
    \'correctifb(0) = 46
    
    correctifb(1) = 13
    correctifh(1) = 52
    
    
    correctifb(2) = 13
    correctifh(2) = 55
    
    correctifb(3) = 19
    correctifh(3) = 67
    
    correctifb(4) = 19
    correctifh(4) = 82
    
    
    correctifb(5) = 18
    correctifh(5) = 83
    
    correctifh(6) = 91
    correctifb(1) = 18
    
    correctifb(7) = 17
    correctifh(7) = 0
    
    correctifh(0) = 38
    correctifb(0) = 41
    
    \'Dim t As Word
    Goto debut
    \'routine
    send0:
           pinout = 0
    th = t - correctifh(i)
    tb = t - correctifb(i)
           WaitUs tb
           pinout = 1
           WaitUs th
    Goto return_emmit
    
    send1:
    th = t - correctifh(i)
    tb = t - correctifb(i)
           pinout = 1
           WaitUs th
           pinout = 0
           WaitUs tb
    Goto return_emmit
    
    debut:
    
    data = 0
    
    start:
           pinout = 0
           WaitUs t
           pinout = 1
           WaitUs t2
           pinout = 0
           WaitUs t
    
    data_start:
    
    For i = 0 To 7
    
           Select Case i
           Case 0
                   bit_a_emmetre = data.0
           Case 1
                   bit_a_emmetre = data.1
           Case 2
                   bit_a_emmetre = data.2
           Case 3
                   bit_a_emmetre = data.3
           Case 4
                   bit_a_emmetre = data.4
           Case 5
                   bit_a_emmetre = data.5
           Case 6
                   bit_a_emmetre = data.6
           Case 7
                   bit_a_emmetre = data.7
           EndSelect
    
           If bit_a_emmetre = 0 Then
                   Goto send0
           Else
                   Goto send1
           Endif
    
           return_emmit:
    
    Next i
    
    pinout = 0
    
    End
    le compilateur dit:
    error in line 37: argument\'18\' is not a valid byte type constant
    lorsque je l'ai supprimé il me dit (line 38 bad expression) (la ligne 38 est vide)
    lorsque je redémarre tout ça donne un autre msg d'erreur plus bete
    mon programme parait bizzare et bete(la select case et les correctifs)
    en fait c'est parce que lorsque je lui dit PORTB.i il ne comprend pas
    et les correctifs c'est parceque c'est ces routines prédéfinies ne sont pas optimisés(trop gourmandes en temps) je dois donc corriger l'erreur des tempo pour que ca soit précis

    ça fait presque un moi que j'ai reporté ce bug mais il ne répond pas. Il n'a pas honte de m'envoyé ses SPECIAL OFFER blabla...
    tiens un autre:
    Code:
    Dim correctifsb(8) As Byte
    Dim correctifsh(8) As Byte
    correctifsh(0) = 38
    correctifsh(1) = 52
    correctifsh(2) = 55
    correctifsh(3) = 67
    correctifsh(4) = 82
    correctifsh(5) = 89
    correctifsh(6) = 91
    correctifsh(7) = 14
    \'\'\'\'\'\'\'\'\'\'\'
    correctifsb(0) = 41
    correctifsb(1) = 13
    correctifsb(2) = 13
    correctifsb(3) = 19
    correctifsb(4) = 19
    correctifsb(5) = 5
    correctifsb(6) = 14
    correctifsb(7) = 13
    Define CLOCK_FREQUENCY = 4
    Symbol pinout = PORTB.1
    Config pinout = Output
    Dim t As Byte  \'demi periode
    Dim tb As Byte  \'demi periode
    Dim th As Byte  \'demi periode
    t = 200
    Const t2 = 400  \'periode
    Dim i As Byte
    Dim bit_a_emmetre As Bit
    Dim data As Byte
    Goto debut
    \'routine
    send0:
           pinout = 0
    th = t - correctifsh(i)
    tb = t - correctifsb(i)
           WaitUs tb
           pinout = 1
           WaitUs th
    Goto return_emmit
    
    send1:
    th = t - correctifsh(i)
    tb = t - correctifsb(i)
           pinout = 1
           WaitUs th
           pinout = 0
           WaitUs tb
    Goto return_emmit
    
    debut:
    
    data = 0
    
    start:
           pinout = 0
           WaitUs t
           pinout = 1
           WaitUs t2
           pinout = 0
           WaitUs t
    
    data_start:
    
    For i = 0 To 7
    
           Select Case i
           Case 0
                   bit_a_emmetre = data.0
           Case 1
                   bit_a_emmetre = data.1
           Case 2
                   bit_a_emmetre = data.2
           Case 3
                   bit_a_emmetre = data.3
           Case 4
                   bit_a_emmetre = data.4
           Case 5
                   bit_a_emmetre = data.5
           Case 6
                   bit_a_emmetre = data.6
           Case 7
                   bit_a_emmetre = data.7
           EndSelect
    
           If bit_a_emmetre = 0 Then
                   Goto send0
           Else
                   Goto send1
           Endif
    
           return_emmit:
    
    Next i
    
    pinout = 0
    
    End
    LINE2 syntax error!!!

    je suis passé à mikroC il parait beaucoup plus performant pour le moment(mais aussi beaucoup plus cher 10fois, j'espère que ca serait 10 fois plus performant)
    @+

  11. #10
    invite2d9e7c03

    Re : langage pour les pics

    ne pas oublié d'enlever les "/" c'est généré par le html

  12. #11
    invite2d9e7c03

    Re : langage pour les pics

    Je ne comprend rien je l'ai essayé maintenant et ca se compile
    ce qui est sur que c'était un bug

  13. #12
    mat64

    Re : langage pour les pics

    Citation Envoyé par MichelM38 Voir le message
    ...Les basic ne sont pas tous interpretés!!
    Pic basic , proton en ce qui concerne les pic sont compilés
    Visual basic 6.0 peut generer de l'interpreté ou du compilé...
    effectivement, le BASIC à l'origine était interprété, mais maintenant on trouve un peu de tout... ma remarque c'était surtout pour définir les notions de language interprétré / compilé.

    Citation Envoyé par MichelM38 Voir le message
    ...Je developpe sur microcontroleur et en particulier les pic (16,18,24)
    ( c'est mon job )...
    salutations cher confrère

    Citation Envoyé par MichelM38 Voir le message
    ...et le C est largement utilisé ( en 10 ans de developpement su Micro, un seul code en asm,!!) . Le C permet de faire des codes puissants et LISIBLES.
    ... et l'assembleur aussi est largement utilisé (en 9 ans de développement micro, grosso modo 50/50 entre l'assembleur et le C). ça dépends de ce qu'on veut faire avec.

    Citation Envoyé par MichelM38 Voir le message
    ... Quand a la rapidité d'execution, les optimiseur des compilateurs font très bien leur boulot. Un code assembleur normal sera moins rapide q'un code C optimisé, et si on optimise le code assembleur, cela devient totalement illisible !!
    Je suis tout à fait d'accord pour reconnaitre que les compilos ont fait d'énormes progrès. Ils étaient presque inutilisables il y a 10/15 ans, et ils sont très corrects aujourdh'ui. mais de la à dire qu'un compilo optimise mieux qu'un bonhomme qui code en assembleur...

    Citation Envoyé par MichelM38 Voir le message
    De plus, si on souhaite maitriser le timing d'une partie de code, il suffit d'inserer du code ASM dans le programme C, Les compilateurs permettant cette manip.
    tout à fait d'accord, on combine les avantages des deux mondes.

    Pas de polémique, je ne suis pas anti-C, je l'utilise aussi. C'était juste pour remettre le curseur un peu plus au milieu

  14. #13
    invite9a03a7c9

    Re : langage pour les pics

    pour les microcontroleur a architecture RISC je ne sais pas se qu'il en ai, mais par contre, pour se qui est des architecture classique, il est evident que les compilateurs autooptimisant font dans 95% des cas du code plus performant que 99% des codeur assembleur (sauf peut etre quelques rare gurus).

  15. #14
    invite5637435c

    Re : langage pour les pics

    Bonsoir,

    je rejoins assez ce que disent mat64 et MichelM38 pour pratiquer aussi.
    J'ajouterai qu'un bon code qu'il soit en assembleur ou en C (ou autre) se doit d'être bien commenté, trop de code pondus en sont dépourvus ce qui nuit considérablement à la maintenance et à la lisibilité de l'ensemble.
    Il n'est pas rare que je ne lise pas plus de 2 lignes quand un tel code est posté sur le forum.
    Pour ce qui est de l'optimisation ça dépend aussi pas mal de la qualité du programmeur, car comment optimiser correctement des codes "spaghetti"?

    Il n'est pas indispensable de connaitre l'assembleur pour coder en C, c'est un des privilèges des langages haut niveau, même si la connaissance de l'assembleur reste un moyen efficace pour optimiser la taille de code ou gérer la pile par exemple.
    @+

  16. #15
    invite2d9e7c03

    Re : langage pour les pics

    Salut,
    Citation Envoyé par HULK28 Voir le message
    Il n'est pas rare que je ne lise pas plus de 2 lignes quand un tel code est posté sur le forum.
    Je ne l'ai pas posté pour être lu ni débuggué mais pour prouver les bugs de ce compilateur(on me l'a bien demandé au post précédant).
    @+

  17. #16
    invite5637435c

    Re : langage pour les pics

    Je ne m'adressais pas à toi, je n'utilise pas le Basic.

  18. #17
    invite3a1051d7

    Re : langage pour les pics

    bonjour Amgb2003,
    je viens juste de regarder ton premier code que j'ai compilé dans l'état
    il apparait un bug dés la premiere ligne
    config pinout = output n'est pas compris
    je suppose que tu veux préciser que pinout est une sortie
    la syntaxe est plutôt
    TRISA = %00000000 '0 pour les sortie
    '1pour les entrée
    j'ai donc remplacé cette ligne
    ensuite ça se compile
    je suis surpris de ne pas voir de registe de configuration .
    dans la fonction /option/ configuration bits
    après avoir coché ce que je souhaite je clic sur "generate code basic" ce qui a pour effet d'ajouté une ligne du type
    Define CONF_WORD = 0x3d71 dans l'editeur basic
    il faut aussi configurer les registres en fonction des besoins
    (exemple ANSEL=%00000001 ,ADCON0 .......)
    donc pour moi ça marche
    Cordialement
    Alain

  19. #18
    invite3a1051d7

    Re : langage pour les pics

    bonjour,
    même remarque pour le deuxieme exemple
    apres la modif
    TRISB = %0000000 au lieu de Config pinout = Output
    ça compile
    cordialemeent
    Alain

  20. #19
    invite2d9e7c03

    Re : langage pour les pics

    Bonjour
    Citation Envoyé par alainav1 Voir le message
    config pinout = output n'est pas compris
    regarde le manuel du compilateur et tu vas voir que ce syntax est permis
    Citation Envoyé par alainav1 Voir le message
    je suis surpris de ne pas voir de registe de configuration .
    le compilateur met les aux valeurs par défauts
    Citation Envoyé par alainav1 Voir le message
    dans la fonction /option/ configuration bits
    après avoir coché ce que je souhaite je clic sur "generate code basic" ce qui a pour effet d'ajouté une ligne du type
    ou ça?? il parait que ta version est ancienne(la mienne est 6.65)
    [/QUOTE]
    @+
    PS:il parait que ça commence à sortir du cadre de la discussion

  21. #20
    invite3a1051d7

    Re : langage pour les pics

    bonjour,
    je propose de continuer cette conversation en message privé
    pour ne pas polluer le forum
    cordialement
    Alain

  22. #21
    Gérard

    Re : langage pour les pics

    Bonjour,
    Mon grain de sel :

    J'ai un faible pour le Basic (que les pros du C me pardonnent).
    Je n'ai ni besoin d'optimisation en temps ni en code, les PIC sont un passe-temps et je m'amuse bien avec.

    Mon compilateur n'a qu'un défaut, le prix 299€ chez Selectronic.
    Comme c'est le Père Noël qui me l'a apporté ....

    Pour avoir une idée : http://www.picbasic.org/proton_compiler.php

  23. #22
    invite5637435c

    Re : langage pour les pics

    Salut Gérard,

    et tu as bien raison, en amateur l'essentiel est de se sentir à l'aise avec les outils dont on dispose et selon les objectifs de réalisations envisagés.
    Compte tenu du temps dont dispose un amateur, l'apprentissage d'un langage est un gros investissement en terme de temps, le soucis d'optimisation et de taille de code est secondaire, seul le résultat final est important.
    Ca vaut aussi pour les polémiques concernant le choix du µC, les arguments avancés par les amateurs pour valoriser tel ou tel choix sont souvent HS, mais bon on ne va pas remettre 1 euros dans la boite à trolls.
    @+

  24. #23
    Gérard

    Re : langage pour les pics

    Citation Envoyé par HULK28 Voir le message
    Salut Gérard,

    et tu as bien raison, en amateur l'essentiel est de se sentir à l'aise avec les outils dont on dispose et selon les objectifs de réalisations envisagés.
    Compte tenu du temps dont dispose un amateur, l'apprentissage d'un langage est un gros investissement en terme de temps, le soucis d'optimisation et de taille de code est secondaire, seul le résultat final est important.
    Ca vaut aussi pour les polémiques concernant le choix du µC, les arguments avancés par les amateurs pour valoriser tel ou tel choix sont souvent HS, mais bon on ne va pas remettre 1 euros dans la boite à trolls.
    @+
    Salut JY,

    Et +1, tu as entièrement raison.

    De toute façon les µC passent beaucoup de temps à attendre, il n'y a pas toujours quelque chose à optimiser.

    Le meilleur µC est celui que l'on connait.

    Pour moi, et ce n'est que mon avis, au niveau amateur, il faut prendre plaisir avec son loisir, pas se prendre la tête.

Discussions similaires

  1. On connaissait les pics d'hiver...
    Par invite33da7396 dans le forum Environnement, développement durable et écologie
    Réponses: 29
    Dernier message: 07/06/2008, 14h17
  2. Quel langage est utilisé pour programmer les puce epr-01
    Par invite8c3c27ac dans le forum Électronique
    Réponses: 5
    Dernier message: 15/08/2006, 17h17
  3. Questions sur les PICs
    Par invitee5b5d3c8 dans le forum Électronique
    Réponses: 3
    Dernier message: 12/06/2006, 21h24
  4. Apprendre les pics!!
    Par marc.suisse dans le forum Électronique
    Réponses: 6
    Dernier message: 16/01/2006, 20h48
  5. Kit de developpement pour PICS
    Par invite819f46e5 dans le forum Électronique
    Réponses: 3
    Dernier message: 11/03/2003, 10h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...