Panneau de modération ]

[Pédago] Apprendre à programmer un PIC

Questions sur l'utilisation des composants, la théorie du signal, l'interprétation des schémas, l'usage des outils et des logiciels...

Re: [Pédago] Apprendre à programmer un PIC

Messagepar hfro le 27 Sep 2013 15:47

T-minik a écrit:Mais, pour changer l’état de 3 pin lorsqu'on bascule un levier (spst) est-ce que c'est pas un peu démesuré ?
Justement, c'est le projet de rêve pour s'y mettre : simple et il y aura certainement un exemple qui ressemble fortement à ton besoin.
Pour passer le temps, des photos qui n'ont rien à voir avec la musique : http://www.flickr.com/photos/the-flea/...
Avatar de l’utilisateur
hfro
ELECTRON LIBRE
 
Messages: 325
Enregistré le: 27 Déc 2005 12:45
Localisation: Toulouse

Messagepar Bartgil le 27 Sep 2013 18:09

Bon, les gars, arrêtez un peu avec le C, svp. C'est le langage le plus mauvais qui soit pour débuter, avec lequel on peut "programmer" n'importe comment, sans structure, 10000 manières de faire la même chose dont 9999 ne sont pas bonnes, etc..., etc... On voit tous la bonne volonté de MrB et les progrès qu'il a faits, mais il est clair qu'il se perd dans la forme à cause d'une syntaxe complexe et imbitable. Or en réalité on se fout de l'optimisation, on n'envoie pas des fusées sur Mars, on switche 3 relais et demi et on génère 4 formes d'onde à tout casser. N'importe quel uC actuel a bien assez de ressources pour faire ça sans avoir besoin de se soucier d'autre chose. De plus, et je le maintiens, qu'on programme en C, en Basic, en Pascal, en Jal ou en ce qu'on veut, l'exécutable compilé est le même car les compilateurs sont optimisés pour la plateforme.
Donc apprendre à programmer c'est d'abord apprendre à structurer sa pensée. Ensuite, on choisit le langage avec lequel on peut le plus simplement possible mettre en œuvre le projet. Et enfin, quand on est prêt, alors on peut se permettre de se lancer dans un langage complexe. Et ça n'est pas souvent nécessaire, loin s'en faut.
C'était mon coup de gueule, je vois trop de débutants dégoûtés de programmer car ils se sont laissés convaincre par ce genre d'argument "comme ça tu pourras programmer aussi pour Windows" bla bla bla. On s'en fout, ce n'est ni l'objet ni le but ici. Oui, je l'avoue, je fais mon Jark, mais ça commence à être lourd.
Donne sans rien attendre, tu ne seras jamais déçu.
Voir de belles choses, c'est bon pour la tête
Avatar de l’utilisateur
Bartgil
MODERATEUR PLEIN SUD
 
Messages: 2370
Enregistré le: 04 Mar 2009 21:19
Localisation: Ajaccio

Messagepar MicMicMan le 27 Sep 2013 18:18

c'est un débat qu'on a déjà eu, c'est peut-être pas la peine de le relancer non plus...

Bartgil a écrit:Donc apprendre à programmer c'est d'abord apprendre à structurer sa pensée. Ensuite, on choisit le langage avec lequel on peut le plus simplement possible mettre en œuvre le projet. Et enfin, quand on est prêt, alors on peut se permettre de se lancer dans un langage complexe. Et ça n'est pas souvent nécessaire, loin s'en faut.

Je suis d'accord avec les 2 points, mais tu oublies un critère important : ça ne sert à pas grand chose d'apprendre une nouvelle techno si c'est du one-shot et si tu es obligé de réapprendre un truc dès que ton cadre change un peu.
Avatar de l’utilisateur
MicMicMan
DOCTOR MOC
 
Messages: 6633
Enregistré le: 26 Fév 2009 17:37
Localisation: Lyon

Messagepar FredArmoni le 27 Sep 2013 18:24

hallelujah Bartgil, répandez la bonne parole, the words of wisdom, l'important et de faire comme on le sent mais avant tout de se faire plaisir.
Putain d'merde Gump, t'es un putain d'génie ! C'est la plus extraordinaire réponse que j'ai jamais entendue ! Tu dois avoir un putain d'merde de QI d'au moins 160, t'es un putain de merde de deuxième classe doué Gump !
Avatar de l’utilisateur
FredArmoni
ELECTRON LIBRE
 
Messages: 922
Enregistré le: 26 Avr 2013 14:27

Messagepar Bartgil le 27 Sep 2013 18:34

Je ne souhaite pas reprendre le débat, au contraire je veux le clore enfin!

réapprendre un truc dès que ton cadre change un peu

C'est le vieux routier de la programmation qui parle. Je dois avoir une bonne trentaine de langages à mon actif, des plus connus aux plus exotiques, pour certains sur des plateformes dont on ne soupçonne même pas l'existence. J'ai aussi donné des cours de programmation structurée et d'algorithmie. Ce qui est primordial c'est de savoir structurer sa pensée. Lorsque tu sais faire ça, tu n'as rien à réapprendre. La syntaxe c'est du pipeau, c'est plié en deux jours quand ton esprit en a l'habitude. Et l'entraînement ne se fait pas en allant du plus compliqué au plus simple. Le langage pour le débutant doit être seulement un moyen commode et rapide de vérifier si sa démarche est bonne.
Donne sans rien attendre, tu ne seras jamais déçu.
Voir de belles choses, c'est bon pour la tête
Avatar de l’utilisateur
Bartgil
MODERATEUR PLEIN SUD
 
Messages: 2370
Enregistré le: 04 Mar 2009 21:19
Localisation: Ajaccio

Messagepar FredArmoni le 27 Sep 2013 18:37

la tortue, la tortue! :mdr2:
Putain d'merde Gump, t'es un putain d'génie ! C'est la plus extraordinaire réponse que j'ai jamais entendue ! Tu dois avoir un putain d'merde de QI d'au moins 160, t'es un putain de merde de deuxième classe doué Gump !
Avatar de l’utilisateur
FredArmoni
ELECTRON LIBRE
 
Messages: 922
Enregistré le: 26 Avr 2013 14:27

Messagepar Bartgil le 27 Sep 2013 18:38

Excellent exemple! :lol:
Donne sans rien attendre, tu ne seras jamais déçu.
Voir de belles choses, c'est bon pour la tête
Avatar de l’utilisateur
Bartgil
MODERATEUR PLEIN SUD
 
Messages: 2370
Enregistré le: 04 Mar 2009 21:19
Localisation: Ajaccio

Messagepar bill_baroud le 27 Sep 2013 18:59

C'est toi le lourd, cte relance à deux balles d'un debat sans fin... MrB, de ce que j'en ai vu, il a un plus de mal à structurer sa pensée (et comprendre le hardware) plus que des problèmes de syntaxe (mais il s'en sors comme un chef pour un novice complet).
Programmer, oui c'est pas évident, et la syntaxe n'y est pour rien dans l'abandon de l'apprentissage (un peu comme la guitare en fait. Avec une harley benton ou une gibson custom shop, c'est tout aussi difficile et décourageant).
Commencer par le C, c'est comme commencer par une guitare toute pourrave: on s'arrache les cheveux et on saigne des doigts mais on apprécie tellement plus quand on passe sur de bons outils (avec lesquels on fait moins d'erreur parce qu'on les a toutes faites avant)
Et la foule en délire lançait des bigorneaux - deux par deux. Les plus riches lançaient des ormeaux.
Avatar de l’utilisateur
bill_baroud
JOHNNY BIGOUDE
 
Messages: 4363
Enregistré le: 19 Aoû 2005 09:50
Localisation: Bretagne

Messagepar sylfeline le 27 Sep 2013 19:12

Il existe des versions Free, Standard et Pro, qui ont comme changement le niveau d'optimisation.
Un circuit imprimé à faire ? demandez à La COOP
sylfeline
COMPUTER WIZARD
 
Messages: 899
Enregistré le: 18 Aoû 2005 15:49
Localisation: 21

Messagepar FredArmoni le 27 Sep 2013 19:41

En fait, il faut savoir structurer sa pensée, certes, mais pas seulement, il faut aussi savoir la traduire dans un langage quel qu'il soit. Pour ça, il faut en apprendre la grammaire et le vocabulaire.
Pour autant, on ne peut s'affranchir des bases même, le bit, l'octet, la mémoire, l'adresse, les types de données...
Certes, si le langage de "haut" niveau permet de s'affranchir d'avoir à connaitre ça, tant mieux, mais les ignorer serait une erreur pour le passage à un langage de plus "bas" niveau. De mon point de vue le C ou le Pascal sont excellents pour ça, on est obligé de savoir ce qu'on manipule (langage fortement typé) et donc de se poser les bonnes questions au bon moment, lors de l'élaboration du programme. De mon point de vue ce sont les autres langages qui sont trop permissifs, pouvoir affecter à une variable de type chaîne de caractères, une valeur numérique sans que le "compilo" ni le runtime ne moufte, ça me défrise.
En fait, un langage compilé/linké qui produit du code machine, il n'y a rien de mieux pour comprendre ce qu'on fait et pour le faire de façon performante et fiable. Du code machine, ça fait ce pour quoi on l'a codé, ce qu'on lui demande de faire et rien d'autre. Pas de fioriture, pas de perte de temps pour des tâches annexes, le profilage, la cartographie, ... ça c'est un autre boulot.
Perso, on fait un battage autour de la difficulté (imaginaire) du C, tant mieux, ça sert ma carrière, le pouvoir de la connaissance, ça se monnaye pas trop mal merci. Compliqué de parler une langue de 33 mots? Tout ça c'est juste des apriori et préjugés, c'est un problème de psychanalyste, ce n'est pas rationnel. Avant d'en faire, j'étais pétrifié par le C. Avant d'en faire j'étais pétrifié par la programmation objet...
Going native boyz ! c'est l'avenir (enfin, sur la base de temps de l'info...retour vers le futur).
dont feed the troll
Putain d'merde Gump, t'es un putain d'génie ! C'est la plus extraordinaire réponse que j'ai jamais entendue ! Tu dois avoir un putain d'merde de QI d'au moins 160, t'es un putain de merde de deuxième classe doué Gump !
Avatar de l’utilisateur
FredArmoni
ELECTRON LIBRE
 
Messages: 922
Enregistré le: 26 Avr 2013 14:27

Messagepar MonsieurB le 27 Sep 2013 21:15

Sortez pas les couteux les loulous OK :D


C'est le débutant qui parle! Et je n'ai aucun recul.

J'ai commencé en C avec une bibliothèque "arduino". Tout allait très bien...jusqu'à ce que ...je sature mon µC. Là la galère. J'ai donc abandonné la bibliothèque "arduino" pour parlé à mon µC avec du C basique. Et choses étranges, le C basique me semble bien plus proche du hardware (manipulation de port, IT) . Au final je crois avoir plus de difficulté à comprendre l'architecture d'un µC (c'est pas comme un AOP :lol: ) qu'une problème de syntaxe. Hervé m’encourageait souvent à consulter le datashett. OK Ok j'ai aussi des problèmes de syntaxe. Mais c'est comme faire l'apprentissage d'une langue étrangère. Parler à un britannique de façon basique c'est facile. Comprendre le raffinement de la langue ....c'est une autre histoire. Et mon projet de LFO c'est déjà un beau projet. Pour Tminik ca sera plus facile. Avec du C et une bonne bibliothèque (genre comme celle de l'arduino) il est très aisé et en quelques heures de faire de la commutation sur des ports.

Quand à structuration de la pensée....là aussi c'est une galère. Par exemple j'en suis à expérimenter sur les machines à état. Et bien, si j'entrevois la puissance et la polyvalence du raisonnement, cela me reste difficile de penser de la sorte.
Comme l’explique Bill, il est délicat pour un débutant de penser "machine" . Je ne suis pas vulcanien. Je tolère très bien les choses hautement illogiques. Un µC, lui, n'aime pas du tout. Et le plus rigolo dans tout cela c'est que maintenant je comprends un peu mieux les raisons pour lesquelles un logiciel se fige ou buggs.

Et pour conclure j'affirme qu'il est délicat de commencer à programmer du µC. Car il faut apprendre à raisonner machine, puis apprendre à causer à cette machine.



[u]Note:[/u] la bibliothèque "arduino" est très simple à utiliser. Je crois qu'il me faudrait que quelques heures pour écrire un programme qui consiste à commuter les ports d'un µC en fonction de l'état d'autres ports.
Entraide et prospérité mutuelle.
Avatar de l’utilisateur
MonsieurB
Ambassadeur de Belgique
 
Messages: 6734
Enregistré le: 30 Sep 2009 09:23

Messagepar FredArmoni le 27 Sep 2013 21:22

voilà, rien de tel qu'un témoignage du terrain pour mettre tout le mode d'accord
vive la diplomatie belge
Putain d'merde Gump, t'es un putain d'génie ! C'est la plus extraordinaire réponse que j'ai jamais entendue ! Tu dois avoir un putain d'merde de QI d'au moins 160, t'es un putain de merde de deuxième classe doué Gump !
Avatar de l’utilisateur
FredArmoni
ELECTRON LIBRE
 
Messages: 922
Enregistré le: 26 Avr 2013 14:27

Messagepar Bartgil le 27 Sep 2013 21:50

Ah ça oui, c'est si beau qu'on dirait du Totovai! :jap:
Donne sans rien attendre, tu ne seras jamais déçu.
Voir de belles choses, c'est bon pour la tête
Avatar de l’utilisateur
Bartgil
MODERATEUR PLEIN SUD
 
Messages: 2370
Enregistré le: 04 Mar 2009 21:19
Localisation: Ajaccio

Messagepar T-minik le 27 Sep 2013 22:12

Ouhla je voulais pas soulever le débat encore une fois.

Je vais essayer de regarder un peu tout avant de me prononce.
Avatar de l’utilisateur
T-minik
"Prix du Sérial Posteur 2009"
 
Messages: 3200
Enregistré le: 10 Fév 2005 08:43
Localisation: Le Triadou - 34

Messagepar MonsieurB le 27 Sep 2013 22:15

Pour du C "like" je pourrais surement te donner un coup de main.
Entraide et prospérité mutuelle.
Avatar de l’utilisateur
MonsieurB
Ambassadeur de Belgique
 
Messages: 6734
Enregistré le: 30 Sep 2009 09:23

PrécédenteSuivante

Retourner vers THEORIE, TECHNOLOGIE ET OUTILLAGE

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

cron