Salut tlm!
Je voudrais savoir si il existe plusieures languages de programmation pour les pics? Si oui, lesquels?
Merci,
-----
Salut tlm!
Je voudrais savoir si il existe plusieures languages de programmation pour les pics? Si oui, lesquels?
Merci,
salut !
Par excellence, c'est ASSMEBLEUR.
On peut ausi les programmer en C, et en BASIC, mais il faut des interpréteurs.
Moi, je débute, et on m'a conseillé de me mettre directement à l'assmebleur, chose que j'ai faites, et je n'en suis absolument pas déçu !
Amitiés !
Clair l'assembleur par dessus tout !
Le C je n'ai eu que des problèmes...
@+
Salut !
Et bien moi je dis le C !
L'assembleur, c'est sur qu'il faut y etre passer au début, mais franchement je pense que le C offre beaucoup plus de facilité de dévellopement et de souplesse que l'assembleur... Ne serait-ce que parce qu'en C la gestion des registres se fait toute seule... (même si on peut toujours intervenir dessus), ça évite les problèmes du style oublier de remettre un flag d'interruption à 0 ou la se planter dans la confin du registre ADCON, etc...
Et puis le programme est facilement évolutif en C,facilement modifiable, et portable.
@+
Pierrick
Salut tout le monde
Je suis d'accord avec toi Pierrick.
L'assembleur, c'est bien, mais l'avenir, c'est le C.
Dans mon ecole, y a des gars qui programment des DSP pour des la compression mpeg. J'imagine pas qu'ils puissent le faire en C.
Je sais c'est pas pareil, mais si au contraire, c'est pareil, le C est portatif, il faut prendre l'habitude.
Et puis apprendre l'assembleur signifie apprendre l'assembleur POUR les Pics, alors que le C tu l'apprend et juste tu t'adaptes au microcontroleur.
Et en plus le C c'est plus facile a apprendre
donc...
guillaume
mais sinon il n'ya pas moyen de combiner le C et l'assembleur??
Si ! Les compilos C permettent en général d'integrer du code assembeur pour optimiser ou gérer plsu précisément.
C'est pour que je dis que le C est tres avantageux, mais nécessite quand meme des bases d'assembleur ( ne serait-ce que po urconnaitre l'architecture duµC sur lequel on bosse...)
Bonne soirée
@+
Pierrick
Salut
-------
Portabilité = compromis = moins bonne efficacité qu'une solution adaptée (l'assembleur).
Une perte de vitesse de l'ordre de 10 à 100 est fréquente entre un programme écrit en C et un programme écrit en assembleur.
Aucun compilateur n'est capable de faire ce que fait un bon programmeur en assembleur.
Et je ne parle pas des bugs (inévitables) dans les compilateurs, très difficiles à mettre en évidence par des non-experts.
En plus, les assembleurs sont gratuits et disponibles dès la sortie du microcontrôleur, ce n'est pas souvent le cas des compilateurs.
Et l'apparente facilité du C incite le programmeur a utiliser des procédures pas du tout adaptées à l'efficacité du programme à réaliser.
A+
Bigonoff
Salut!
Meme si tu es le boss incontesté sur les Pics Bigonoff, il y a quelques points sur lesquels je souhaiterais revenir:
Par portabilité, j'entends qu'un programme compilé pour un 16F84 peut etre facilement transposé sur un 17Cxx, ou meme 18Fxx, juste en changeant l'include du programme, la modification des registres se faisant toute seul. Les modifications à effectuer dans le programme sont donc moins lourdes à réaliser.Portabilité = compromis = moins bonne efficacité qu'une solution adaptée (l'assembleur).
La je suis d'accord avec toi, quoique les compilo sont de plus en plus performant, mais il est clair qu'il y a une perte de vitesse ( 100 ça me semble beaucoup quand meme)Une perte de vitesse de l'ordre de 10 à 100 est fréquente entre un programme écrit en C et un programme écrit en assembleur.
Aucun compilateur n'est capable de faire ce que fait un bon programmeur en assembleur.
Encore une fois je suis d'accord, mais il existe des compilos C gratuit pour les Pics maintenant.En plus, les assembleurs sont gratuits et disponibles dès la sortie du microcontrôleur, ce n'est pas souvent le cas des compilateurs
Est ce que tu pourrais donner un exemple ou etre plus précis? Je comprends ce que tu veux dire, mais j'ai du mal à me représenter le cas, et j'aimerais savoir si j'utilse des procédures inadaptés...Et l'apparente facilité du C incite le programmeur a utiliser des procédures pas du tout adaptées à l'efficacité du programme à réaliser.
Bonne après midi!
@+
Pierrick
100 c tout a fait possible...
pour l incompatibilite, imagine un programmateur qui ne sait pas trop comment fctionne un pic et qui, par habitude utilise bcp de pointeurs !! (alors que la pluspart du temps ca ne se justifie absolument pas)
ben imagine maintenant la gymnastique monstre que va faire le compilo (et le pic) pour executer ca!!
Le C est vraiment tres portable, ca veut dire qu un code ecrit (en C standard, ANSI) peut etre compile pour le plus petit des pics, ou pour le dernier des PC
en fait en general on utilise le C pour se simplifier la vie (sur les parties de programme qui calculent bcp, mais ne son pas exec svt), et l asm sur le code de plus bas niveau...
ex concret: un asservissement: on entre la valeur d un capteur, on en soustrait la consigne, on calcule un PID dessus(proportionnel-integrale-derivee), puis on sort le resultat sur une PWM
Ben en general l entree (capteur), et la sortie (PWM) se feront en ASM, et ne seront de ttf pqs portables car dependantes du matos
La partie calcul par contre est bcp plus facile a coder/maintenable/lisible... (mais demande plus de temps d exec, pas bcp si le prog est bien pense), et surtout, pourra etre utilisee sur nimporte quel PROCESSEUR : PIC, AVR, DSP, PC, HC11...... en ecrivant juste un IO correspondant
salut,
si je suis d'accord avec guerrier sur les avantages du C lorsqu'on a besoin d'une partie calcul ou d'autres cas complexes, mais il ne faut pas trop réver à propos de la portabilité des programmes. Déjà que c'est difficile pour une même famille de µcontrôleurs : il n'y a qu'à constater la longueur des fichiers sources nécessaires à une compilation conditionnelle, c'est à dire qui tient compte de chaque particularité des µcontrôleurs.
De plus, l'utilisation du C ne dispense pas d'une connaissance parfaite du µcontrôleur et de toutes les directives de compilation (les fameux #pragma ...) qui seules permettent de générer un code efficace.
En résumé, le C c'est très bien, mais utilisé à bon escient et en maîtrisant bien le compilateur et le fonctionnement de son µcontrôleur.
A+