Formation aux PIC

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From French to

Threaded View
bonjour

auriez vous une référence d'un 'bon'livre de formation aux PICs,
programmation en Basic ?
j'en ai vu quelques uns mais tous m'ont semblé 'formation' avec
'faisons ensemble'. donc on fait les exemples et après on ne peut aller
plus loin parce que les règles générales et la méthode n'ont pas été
expliqués.

Merci



Re: Formation aux PIC
Guillaume a ecrit
Quoted text here. Click to load it

Bonjour

AMHA il faut distinguer au moins 2 choses (et cela concerne tous les µc
)

- bien connaitre et comprendre l'architecture de la cible
- bien connaitre les limitations du langage dit haut niveau utilisé.

Vous semblez avoir choisi la prog de pic en basic, on peut
effectivement faire de belles choses, mais cela necessite avant tout de
l'apprentissage et etre conscient des limites.

Ne serait ce déjà que dans le choix du "basic" utilisé (et des pic
supportés).

J'ai laché la prog pic depuis déjà un certain temps

mais j'avais fait testé/evalué (et donc ma reponse n'est peut etre plus
up to date :oÞ )

les produits de Crownhill (proton)
et Mikrobasic

Chacun avait/ont evidemment des qualités et des defauts
Crowhill sortait gagnant des benchs pour simplement utiliser le MASM
officiel de Microchip .

Pour le reste ET apres apprentissage les doc fournies permettent déjà
un beau decrassage dans l'apprentissage.

Si vous faite cela dans une demarche amateur, l'important est plus déjà
d'avoir "un bon board d'experimentation"  que de choisir ou se
polariser  sur un langage
Rvl



Re: Formation aux PIC

Quoted text here. Click to load it
tu as "s'initier à la programmation des picbasic" de Guy Isabel (ETSF)
librairie DUNOD
complet .
amicalement yv
Quoted text here. Click to load it


Re: Formation aux PIC

Quoted text here. Click to load it
============
Pour ce former à la programmation en basic il faut commencer par se former
"au basic" choisir un basic de base et "travailler" sur un PC pour se
familiariser avec les instructions de sa structure  et de  leur utilité. (
On peut avec un PC simuler les fonctions principales d'un µC comme les
entrées et sorties , les interruptions l'affichage  et bien sûr les
algorithmes  ...)
Ensuite, choisir le logiciel d'exploitation basic  que tu choisiras
d'utiliser  pour la famille "PIC" et  s'exercer sur l'outil
Note aussi que tu peux également commencer directement avec le langage "C" ,
pas plus difficile à assimiler



Re: Formation aux PIC
Guillaume a écrit :
Quoted text here. Click to load it
Mmm

je pense que c'est une erreur commune que de croire que l'on peut
programmer un pic en basic sans autres connaissances.

en effet, tu devras utiliser les fils d'entrée sortie, les registres
internes, temporisateurs etc, et là, la connaissance du PIC cible est
incontournable.

Lorsque tu sera capable de faire des petits programmes simples, du genre
faire clignoter une led, alors tu pourras passer au basic.

JJ

Re: Formation aux PIC
Quoted text here. Click to load it

bonjour E0% tous,

je ne connais pas proton...

mais l'aide et les exemples de MikroBasic
sont une trE9%s bonne base...pour dE9%buter avec
les pics en basic...

vede
;O]

Re: Formation aux PIC
Guillaume a écrit:


Quoted text here. Click to load it

  Dans l'ignorance du pic et du basic, je pense qu'il faut oublier le
basic pour programmer d suite en assembleur. Les 35 instructions restent
accessible, le reste n'étant que de l'analyse en assembleur comme en
basic..

A+
--
02°44'45"E  45°30'50"N
    Philippe Vessaire  Ò¿Ó¬


Re: Formation aux PIC
Quoted text here. Click to load it

Les 35 instructions, c'est pour les petits pics de la gamme 16f. Maintenant,
avec les 18f et autres, il y en a plus, pas énormément beaucoup plus, certes,
mais personnellement, je préfères quand même programmer en C++, c'est plus
lisible et maintenable, et surtout portable d'un pic à l'autre, et même sur
la gamme au dessus. Et avec le compilateur que j'utilise, c'est intégré à
MPLAB et très performant (si on sait ce que l'on fait néanmoins, l'exemple
type est un décalage de beaucoup de bits dans une boucle, comme les pics (les
16f en tout cas) ne sait décaler que de 1 bit, il va faire une boucle pour
les n décalages, donc ça fait une boucle imbriquée et c'est pourri ;)

Donc faut toujours connaître un minimum la cible pour ne pas faire n'importe
quoi, quel que soit le langage, voire jeter un coup d'oeil sur le code généré
après.

--
cLx

Re: Formation aux PIC
Bonsoir,
Le livre:
"S'initier à la programmation des PIC"
"Basic et Assembleur"
de Alain REBOUX

--
era
http://tk5yp.fr/webcam/calvi_revelata.htm

Re: Formation aux PIC

2783341.kQq0lBPeGt@GastonCoute...
Quoted text here. Click to load it

faire de l'assembleur RISC c'est un crime
contre l'humanité... c'est le boulot d'un
compilateur...

et sinon je vois pas l'interet du basic,
le C étant l'idéal pour programmer des
uC...




Re: Formation aux PIC
Stephane Legras-Decussy a écrit :
Quoted text here. Click to load it
N'oublions pas que le compilateur, c'est un humain qui l'a fait, il ne
s'est pas fait tout seul !

JJ

Re: Formation aux PIC
Quoted text here. Click to load it

Sauf que celui qui a écrit le compilo, l'a fait en tenant compte du temps de
traitement de chaque instruction des possibilité de réorganiser les
instructions suivant le pipleine et plein d'autres astuces que le commun des
mortel est totalement incapable de faire sur plus de 10 lignes de code
assembleur :)

Bref, programmer en assembleur ça ne sert absolument à rien à part sur des
cas très spécifiques de quelques lignes de codes qui sont mieux optimisées
par un humain que le compilo mais c'est rare, de toute façon un programme
tout en assembleur dès que ça dépasse quelques centaines de lignes de code
c'est plus maintenable, par contre ça flatte l'égo "moi je sais programmer
en assembleur" :-).

Pascal


Re: Formation aux PIC
Quoted text here. Click to load it


Oh!

Ecire en C ce ne serait pas plutôt de la fainéantise ?

De toutes façons, je me répète, impossible de programmer les PIC sans
connaitre les différents registres.

Maitrise les qq instructions de base est certainement plus facile que de
se lancer dans les dédales tortueux du C...

Il n'y a pas plus de frime à maitriser l'assembleur du PIC que de snober
le monde parce que l'on écrit du C.

jj

Re: Formation aux PIC
Quoted text here. Click to load it

C'est tout simplement bien plus productif que l'assembleur. Dépassé une
certaine quantité de code, l'assembleur ce n'est plus maintenable
facilement, et souvent illisible en général par une autre personne que celle
qui l'a écrit voir même l'auteur original, quelques années après qui ne
s'est jamais demandé pourquoi il avait codé ça ou ça ou fait telle astuce
:-)

Quoted text here. Click to load it

Les registres n'ont rien à voir avec le langage de programmation, on accède
aux registres des périphériques internes (timer, i2c, port E/S, registres de
config, etc) aussi bien en C qu'en assembleur, nul besoin de connaitre les
registres "cpu" pour coder en C (je différencie bien le cpu/alu dont on a
pas besoin de savoir comment il fonctionnent et les périph où là forcément,
sans datasheet on fait pas grand chose, que ça soit en asm ou en C)

Quoted text here. Click to load it

J'ai commencé à programmer au début des années 80, en assembleur parce que
c'était la mode et que les compilos C ne courraient pas les rues,
l'assembleur est le langage de programmation le plus compliqué et le moins
pratique qui soit, n'importe quel autre langage c'est de la rigolade à coté.

Le C est d'une simplicité enfantine et il est universel, toujours utilisé
depuis 1972...

Quoted text here. Click to load it

Meuh non que vas-tu chercher là, je ne snob pas ceux qui codent en
assembleur, j'ai fait 10 ans de 68000 archarné et j'aimais ça, je dit
simplement qu'en 2009, apprendre l'assembleur sur une architecture
particulière est une perte de temps et que quitte à apprendre un langage,
autant apprendre le C c'est plus utile, et on évite de "s'enfermer" dans un
type d'architecture, par exemple quand je faisait du 68000 je ne pouvais pas
concevoir de programmer sur du intel, leur assembleur étant trop imbitable
et le codage en little-endian quelque chose que je n'ai jamais pu concevoir
trop chiant à débugger, ma conclusion était donc que intel c'est de la
merde, ce qui était très con de ma part, ils n'étaient pas pire ni mieux,
juste que n'étant pas habitué à leur assembleur ne les avais écartés de ma
vue vite fait :-) alors qu'en C on jongle de l'un à l'autre les doigts dans
le nez et on en a rien à cirer de la façon dont sont rangés les octets ou si
le processeur est 8, 16, 32 ou 64 bits (à l'alignement des pointeurs près).

Bien sur il faut apprendre le fonctionnement des timers,E/S,paramétrages,
etc suivant les modèles mais ça ça vaut pour n'importe quel modèle et
franchement ils se ressemblent tous à quelques détails pres, quand tu
connais la logique des microcontroleurs/microprocesseurs, en quelques
minutes tu peux lire n'importe quel datasheet de n'importe quel constructeur
t'es pas perdu, savoir que pour régler le diviseur du timer X il faut mettre
le 3ème bit du registre Y à 1 n'a rien à voir avec le langage, ça se fait
aussi bien en C qu'en asm.

j'ai fait énormément d'assembleur 68000, le jour où je suis passé au C ça a
été la délivrance, sans déconner, c'est là que j'ai commencé à faire des
choses beaucoup plus interressantes de mon point de vue, non pas parce que
je ne savais pas le faire en assembleur, mais tout simplement parce que ça
représentait un boulot monstrueux à coder.

Le nombre de registres cpu, le registre d'état, les type d'adressages, et
tous les trucs chiant au possible à faire en assembleur on les oublie très
vite et sans le moindre regret, comme faire un appel de fonction en passant
plusieurs paramètres sur la pile, pour les dépiler ensuite dans la fonction,
on a vu plus marrant, gérer la sauvegrade/restauration du contexte lors des
interruptions, ou même faire un bête "printf" en assembleur c'est pas
passionnant, en C ça prend 5 secondes le temps de taper 1 ligne de code...
ou même programmer un dsp en asm, faut être un peu fou :-)

En C on se concentre uniquement sur l'algo et pas sur les détails et on se
surprend à faire des programmes extremement complexes et qui font énormémént
de choses, même en étant débutant en très peu de temps.

Ensuite une fois que le prog tourne, ok on peut faire du profiling et
optimiser par ci par là avec un peu d'assembleur quelques % de code à la
main si vraiment ça sert à quelque chose, maintenant les cpu sont tellement
puissants que ça ne sert à rien d'aller grapiller 2 cycles d'horloge par ci,
4 par là et devoir repasser à l'assembleur devient de moins en moins utile,
je dis pas que ça sert à rien, mais ça sert de moins en moins.

L'assembleur a l'air plus facile au tout début, parce qu'en 3 ou 4
instructions on fait clignoter une led sur une sortie c'est ludique ok, et
en C ça demande un peu plus d'énrobage et ça a l'air compliqué au premier
abord pour faire la même chose. Mais une fois que le squelette est fait et
qu'il faut coder un comportement complexe on va bien plus vite en C.

Comme je disais au début, la vraie utilité du C en dehors qu'on va plus
vite, c'est que c'est universel, ça sert partout, même sous windows, linux,
mac, une fois qu'on sait programmer en C on fait n'importe quoi sur
n'importe quelle plateforme, que ça soit nu vieux clou ou le tout dernier
processeur de la mort qui vient de sortir, quelqu'un qui sait programmer en
C sur son pic 8 bits, il peut aller aussi bien lire du code C à destination
d'un atmel 32 bits ou le code du noyaux linux sur archi ia64 par exemple ou
même porter du code d'un cpu à l'autre sans trop de difficultés, en asm, ben
faut tout réécrire...

Pascal


Re: Formation aux PIC

4ab27a39$0$23486$ snipped-for-privacy@news.orange.fr...
Quoted text here. Click to load it

??  dédales tortueux ?

ça c'est de la méconnaissance du C...

les plus timides peuvent meme écrire du C sans
fonction et sans pointeur...

une seule fonction principale main(),
que des variables globales... des goto
pour les branchements...

un débutant pige le truc en une demi-heure...








Re: Formation aux PIC
On 19 sep, 15:03, "Stephane Legras-Decussy"
Quoted text here. Click to load it


bonjour E0% tous,

qu'est ce que j'avais dit ;O]
j'aurai jamais du parler de l'asm ;O]

bon dimanche E0% tous,
vede
;O]

Re: Formation aux PIC
On 16 sep, 21:06, "Stephane Legras-Decussy"
Quoted text here. Click to load it

bonsoir E0% tous,

dans ce cas...
pour dE9%buter en asm avec les pics...
il existe une bible...
les cours de Bigonoff...

vede
;O]

ps sinon le bouquin d'Alain REBOUX est trE9%s sympa...
et lui aussi (il rE9%pond aux questions par mail)...




Re: Formation aux PIC
On 16 sep, 21:06, "Stephane Legras-Decussy"
Quoted text here. Click to load it

hi


lE0%, va y avoir polE9%mique...
ou c'est un troll ;O]

l'idE9%al...c'est l'asm... ;O]
E0% moins de vraiment maitriser
le pic... et ton compilo C...

vede
;O]



Re: Formation aux PIC

../..
Quoted text here. Click to load it

hi


là, va y avoir polémique...
ou c'est un troll ;O]

l'idéal...c'est l'asm... ;O]
à moins de vraiment maitriser
le pic... et ton compilo C...
=============
Ne penser exclusivement que "asm" est du bricolage,   comme un menuisier qui
s'interdirait d'utiliser une scie électrique ou  la raboteuse ...
En réalité il faut "tout" connaître  également l'asm car parfois on
l'utilise  (qui est aussi un langage traducteur du niveau bas ) pour  créer
des fonctions particulières au sein d'un  programme en langage de haut
niveau "C" ou analogue ou "plus" .
L'avantage pour un amateur, de commencer par un langage de haut niveau est
de ne pas galérer des heures et des jours sur un fichier ASM pour écrire le
fameux "Hello Word" cher aux asm'istes




Re: Formation aux PIC

4ab14e98$0$17753$ snipped-for-privacy@news.orange.fr...
Quoted text here. Click to load it

par contre je ne vois pas du tout l'interet
de faire du basic... ce truc est complètement
obsolète et c'est faux de croire que c'est
plus simple que le C...

on peut même faire des goto en C si on
est nostalgique...



Site Timeline