programation de pic

  • Auteur de la discussion Niciolas31270
  • Date de début
N

Niciolas31270

Apprenti
Je voulait savoir si certain d'entre vous pouraient me renseigner sur la programmation de circuit intégré appellè pic.
D'après moi il se programment en language c++
 
A

AZP

Apprenti
La bible est la :wink:

http://www.abcelectronique.com/bigonoff/

Le PIC a la base, c'est de l'assembleur (comme tout µProcesseur ou µControlleur), mais après il existe des compilateurs qui peuvent te permettre de développer dans des langages plus haut niveau, et de te compiler ça en assembleur.... mais tu ne maitrisera jamais aussi bien les instructions et le temps d'exécution qu'en codant directement en assembleur.... :wink:
 
O

oliv

Compagnon
Ils peuvent se programmer en Basic avec, par exemple, Mikrobasic de MikroElektronica.

Peut aussi se programmer en C++ ou en Assembleur.
 
B

basilic

Compagnon
Le mieux est de programmer directement en assembleur, le jeu d'instruction est très limité et la documentation est très claire.

Le soucy de la programmation en C et pas en C++ (enfin pas a ma connaissance) c'est qu'il y a des 100ene de ligne de code qui ne servent a rien car redondante.

Tu as aussi de très bonne bibliothèque fournis par Microchip qui te permette de faire quasiment tous.
 
G

gourky

Ouvrier
basilic a dit:
Le mieux est de programmer directement en assembleur, le jeu d'instruction est très limité et la documentation est très claire.

Le soucy de la programmation en C et pas en C++ (enfin pas a ma connaissance) c'est qu'il y a des 100ene de ligne de code qui ne servent a rien car redondante.

Tu as aussi de très bonne bibliothèque fournis par Microchip qui te permette de faire quasiment tous.

Bonjour,

Les compilateurs C que j'ai vu font surtout de la conversion en assembleur, assez réussie. (celui fourni par microship qui est gratuit dans la limite de la taille du programme, et le compilateur microc, gratuit aussi). Ils produisent un fichier assembleur que l'on peut modifier.

J'ai acheté le PICkit 3 Debug Express mais je ne peux pas donné d'avis, car je n'ai pas eu le temps de l'essayer.
 
J

JCS

Compagnon
Salut à tous,

J'utilise avec bonheur, depuis plus de 15 ans PIC BASIC COMPILER, c'est le même langage que pour le BASICSTAMP1.

J'ai réalisé ainsi de nombreux projets dont des diviseurs numériques commandés par PC :

http://www.sulka.fr/diviseur_numerique/cn.pdf

Et un programmateur pour cuisson de revêtements pour la fonte à cire perdue :

http://www.sulka.fr/fcp

Il gère la cuisson sur 7 heures avec différents paliers de 100 à 700 °.

Je me suis même amusé à mettre une prise DB9 pour récupérer les données sur PC. Je peux ensuite faire un graphique avec EXCEL, par exemple.

Ici une discussion sur un trackeur solaire que j'ai aussi réalisé avec un PIC :

https://www.usinages.com/threads/tracker-solaire-heliostat.20561/

Je reste à disposition pour apporter ma modeste expérience sur la programmation des PIC en Basic.

@+

JC.
 
J

JEANCLAUDE

Apprenti
je pratique les deux, assembleur et language évolué.
pour un débutant et qui ne veux pas en faire son métier, je pense qu'il est plus sage et plus rapide d'utilisé un language évolué. (surtout si vous avez une petite idée de ce qu'est la programmation en language Basique). Pic bassique compiler est trés bien, je l'ai utilisé plusieurs année. j'utilise actuellement Proton+ de crownhill. ces 2 compilateurs ce trouvent sur internet, tu peux peut-être trouver une version d'évaluation. ils sont vendu entre autre par selectronic.
il existe aussi des forum d'aide pour la programmation en pic basic en C++ et en Proton
 
L

lion10

Compagnon
Bonjour

L'assembleur pour programmer un circuit c'est référable pour générer un code efficace pour du logiciel embarqué. Le pb c'est que c'est assez déroutant de manipuler les instructions assembleur.

On écrit que du code util car on s'en tient au minimum.

Le C langage évolué c'est vraiment très utilisé dans l'industrie dans l'embarqué. Mais il faut bien avoir conscience de ce que l'on fait. Il ne faut jouer avec l'allocation mémoire (malloc) sur des pertits micro-controleur qui ont peu de ressource.
Certaines notions pourtant très utile comme les pointeurs peuvent dérouté au début et il faut tjs avoir à l'esprit le matériel.
Des mathématicien qui codait en C sans avoir la vision matérielle et ensuite il fallait porter le code sur des cartes à micro-contreleur c'était pas gagné. Ils jouaient avec les allocations dynamiques de mémoires comme si les ressources étaient infinies.

Sinon quel plaisir par rapport à l'assembleur.
Il faut bien avoir à l'esprit que selon le compilateur les lignes de code en assembleur généré peuvent être plus nombreuses.
Par exemple pour une simple boucle selon les subtilités du C que l'on utilise, ce ne sera pas la même chose, voir difficile de s'y retrouver.

Pour débugger en langage évolué c'est bien. Mais c'est bien d'avoir des bases en assembleur surtout quand il faut debbuger !
L'idéal est d'avoir un émulateur et au minimum les fichiers assembleur du codé en mixe avec le langage évolué C , comme cela on voit sur papier la traduction en assembleur du code en C.

Le basic est basic mais à mon sens moins puissant et adapté pour de l'embarqué que le C.

Quand au C++ il est plus abstrait que le C et plus compliqué. Les notions d'objet si elles peuvent s'utiliser dans de très gros soft embarqués, n'ont à mon sens rien à faire dans de petites cibles tel les pics et sont plus compliquées pour l'amateur.

Personnelement ce serait donc du C voir du basic selmon les compilateur disponibles en gratuits avec une connaissance minimum de l'assembleur.

cdlt lion10
 
N

nordiste

Apprenti
euh, vous parles quasiment tous de C++,
conaissez vous un compilo pour pic qui permet de compiler des classes c++ ???
parce que j'aimerais bien trouver un tel compilo pour mes projets.
merci d'avance,
marc
 
J

JEANCLAUDE

Apprenti
Il faudrait que Niciolas nous en dise un peu plus sur ce qu'il compte faire avec des PICs et quel est son niveau de connaissance en programmation mais aussi en électronique. Je suis du même avis que JCS, il donne quelques exemples.
Ce qui est dit sur la programmation en assemble est toute à fait exacte. Mais il faut relativiser.
Qui de nos jour envisagerait d'écrire des programmes en langage machine pour un PC !
Plus personne, car les processeurs sont de plus en plus rapide, la mémoire disponible de plus en plus grande...Il en va de même pour les PICs.
Il faut bien comprendre que l'enjeu entre l'assembleur et les langages de haut niveaux, c'est la vitesse et la taille du programme.
En langage évolué la programmation est plus simple mais la taille du programme résultant dans le PIC est plus importante donc, à l'exécution il va moins vite.
Dans 99% des cas ce problème n'en est plus un au regard des performances des PICs.
Niciolas, dit-nous ce que tu veux faire.
 
A

AZP

Apprenti
JEANCLAUDE a dit:
Il faudrait que Niciolas nous en dise un peu plus sur ce qu'il compte faire avec des PICs et quel est son niveau de connaissance en programmation mais aussi en électronique. Je suis du même avis que JCS, il donne quelques exemples.
Ce qui est dit sur la programmation en assemble est toute à fait exacte. Mais il faut relativiser.
Qui de nos jour envisagerait d'écrire des programmes en langage machine pour un PC !
Plus personne, car les processeurs sont de plus en plus rapide, la mémoire disponible de plus en plus grande...Il en va de même pour les PICs.
Il faut bien comprendre que l'enjeu entre l'assembleur et les langages de haut niveaux, c'est la vitesse et la taille du programme.
En langage évolué la programmation est plus simple mais la taille du programme résultant dans le PIC est plus importante donc, à l'exécution il va moins vite.
Dans 99% des cas ce problème n'en est plus un au regard des performances des PICs.
Niciolas, dit-nous ce que tu veux faire.

Bonjour !

Même si tout ce que tu écris la est très vrai, je n'aime pas cette façon de penser.
Pourtant c'est celle que le monde entier à hélas adopté ! Quand on arrive aux limites, on décide de produire + d'énergie plutôt qu'essayer de réfléchir à en consommer moins.....

Quand on reviens 15~20 ans en arrière, et qu'on voit que certains jeux videos bourrés de grahismes en pseudo 3D et d'une durée de vie énorme tenaient sur 3 disquettes...... et qu'aujourd'hui il faut un DVD pour faire tenir un casse-briques... (je caricature).

Bref c'était un micro coup-de-gueule :wink:

Quoi qu'il en soit pour revenir sur le sujet je trouve interessant, même si on code en C ou autre langage "haut niveau", d'apprendre l'assembleur et le jeu d'instruction du µC qu'on programme, ne serait-ce que pour "comprendre ce qu'il se passe" à l'intérieur ! Ca aide beaucoup !
 
J

JEANCLAUDE

Apprenti
Je partage totalement ta vision des choses.
J'espère que de plus en plus de monde prendra conscience et agira pour économisé les ressources de notre belle planète (est-elle encore si belle...?).
Je me chauffe avec une pompe à chaleur (eau eau) et si je programme en langage évolué c'est pour gagner un peu de temps.
Cela contribue notamment à m'en donner plus pour cultiver mon jardin et m'occuper de mes poules. La vie est faite de compromis et de choix. Niciolas fera le sien.
 
W

wintereivax

Ouvrier
nordiste a dit:
euh, vous parles quasiment tous de C++,
conaissez vous un compilo pour pic qui permet de compiler des classes c++ ???
parce que j'aimerais bien trouver un tel compilo pour mes projets.
merci d'avance,
marc

C'est clair, c'est du C, pas du C++... Aucune notion d'objet, d'héritage, de polymorphisme :)

Quant au dilemme assembleur ou C, c'est pareil que les machines : tout dépend du cahier des charges : s'il s'agit de faire s'allumer un compteur avec des 7segments, ben C direct. Si c'est pour faire une moyenne mobile d'un signal à 20MHz, ben pas trop le choix C est trop lent, donc passe à l'optimisation en assembleur.

Par ailleurs, c'est toujours possible de mélanger les 2 : un bout d'assembleur avec un bout de C :)

Bon courage

Xav
 
C

coredump

Compagnon
Pour les PICs type 16, c'est normal que le C n'est pas efficace, ceux ci ont une architecture inadaptée au compilateur C.

Par contre sur des procs type AVR ou PIC plus évolués, c'est nettement mieux (et pas de soucis de C++).

La principale raison de l'abandon de l'assembleur c'est avant tout la réutilisation du code et la portabilité, bien plus importante aujourd'hui que les perfs elles mêmes. Tres tres peu de programmeurs sont amenés a travailler en asm pour les perfs, de toute façon dans ce cas, le langage n'est qu'un moyen, pas une finalité, et surtout pas une garantie de résultat. L'étude, le profilage et l'optimisation du code est bien souvent plus efficace.
 
B

basilic

Compagnon
Je n'ai que très peu travailler en C sur les PIC et plutôt en ASM pour une raison simple a l'époque la notion de durée d'instruction.

En effet la plupart des application que j'utilisais devais avoir des timings précis (ecriture de protocole de communication IR, enregistrement de donnée dans des I2C etc..) et a cette époque le compilateur C était a ces début pour les 16F627 et la répétition de ligne (genre chargement de bibliothéques en changant les 2 bank au lieu d'une... ou en rechargant la meme...) venais très vite remplir la mémoire de ce tous petit PIC.

Certainement qu'aujourd'hui il est moins nécessaire de retravailler les programmes compilé en C
 
C

coredump

Compagnon
Non ca ne change pas aujourd'hui, les PIC16 sont inadapté au C, et on y peut rien, c'est un problème matériel.
Si on veut programmer en C, on passe soit aux PIC plus évolués (18 ou 32), soit sur AVR (à condition que ceux ci aient assez de ram).

Je trouve les AVR plus simple pour débuter, mais aujourd'hui j'aurais vraiment du mal a travailler sur du 8 bits. Le prix des micro 32 bits est vraiment tombé très bas.
 

Sujets similaires

E
Réponses
45
Affichages
3 897
Lechattom
L
C
Réponses
1
Affichages
350
Chrismodifrwa
C
P
Réponses
9
Affichages
2 030
Pierro19
P
Jeannot_64
Réponses
0
Affichages
247
Jeannot_64
Jeannot_64
D
Réponses
11
Affichages
758
Danke!
D
R
Réponses
2
Affichages
1 039
lolo
E
Réponses
4
Affichages
475
Gcrimi2005
G
enzodesilesbaladar
Réponses
8
Affichages
16 835
enzodesilesbaladar
enzodesilesbaladar
A
Réponses
22
Affichages
4 575
jean-marieraymonde.weber
jean-marieraymonde.weber
Haut