Je viens de relire tous les posts.
Je n'avais pas vu qu'il était de 2007 au début LOL.
J'ai voulu aller dans le sens des réponses de nos excellents participants.
J'ai dû passer 1 heure à faire l'exercice avec Flowcode, ou 2h au maximum.
Mais je pense qu'un étudiant totalement débutant aurait mis 1 mois voire 2 pour le faire seul de lui même.
Personnellement mon premier programme était sur un SCMP avec une mémoire RAM de travaille mirobolante de 256 octets (LOL c'est quoi ça ?) était en code hexa , il y avait même pas d'assembleur, pour faire afficher HELLO sur des digits 7 segs , il m'a fallu 1 mois pour le faire.
Pour revenir aux algorithmes, ayant commencé sans même avoir un simple assembleur, l'utilisation de l'assembleur était un immense progrès, quant aux algorithmes , je ne voyais même pas comment traduire un quelconque prog en symboles algorithmiques.
L'apprentissage de langage plus évolué permet de jongler avec des concepts, de boucles de procédures, de table de saut ou de procédures et de données.
A ce moment les algorithmes deviennent plus réels.
Le fait d'être trop près de l'assembleur ne permet pas de résoudre des problèmes plus complexes, car l'assembleur c'est le détail microscopique , ce qui fait que notre cerveau est vite encombré avec une infinité de détails superflues, il faut alors raisonner sur des notions compilés ou briques préconçues et encore plus au dessus sur des concepts.
Une fois ces concepts appris on peu commencer à faire des algorithmes et la transformation directe comme avec Flowcode peut être vraiment très rapide, mais cela a quand même ces limites et dès qu'on veut faire du spécifique on fini par galérer malgré tout.
Au niveaux de l'assembleur une certaine culture est nécessaire tout de même comme les fonctions logique AND OR NOT XOR et savoir passer du code décimale à l'hexa me semble indispensable, ainsi que la connaissance de la règle mathématique des signes.
Les notions de décalage lier au division.
Notions de pile , appel de procédure.
Savoir ce qu'est un registre, le compteur ordinal, des flags, des interruptions, RAM, ROM, bank , page etc..
Faire des conversions fréquences périodes , notion de temps des cycles, temps de commutation.
Un minimum de notions d'électroniques aussi.
Et j'en oublie surement...
Sinon chaque appel à une de ces notions que nous ferons sans nous en rendre compte, si l'étudiant ne réagit pas , pour dire ; "mais, qu'est ce que c'est ?" , le coulera à coup sur.
Une fois toutes ces notions apprissent , et quelques concepts de programmation afin de pouvoir faire une analyse et une synthèses, les algorithmes pourront enfin parler.
Pour l'assembleur Microchip, c'est vrai que pour quelqu'un qui connait d'autres µp , il est surprenant , surtout par le nombre réduit d'instructions et aussi par son architecture.
Il est sortie en 1995 , et sincèrement , il m'a fallu 1 an pour le digérer ...
Pourquoi ? Parce que mes habitudes étaient toutes chambouler et que parfois je me demandais comment faire certaines choses.
Après avoir étudier les exemples fournis je me rendait compte que c'était possible.
Il y a pourtant certaines techniques impossibles à faire comme empiler du prog sur la RAM puis l'exécuter, ce qui était bien pratique pour faire certaines choses.
Cela veut dire que les 35 instructions de base sont au premier abord totalement insuffisantes à notre esprit pour pouvoir faire quoique ce soit et je comprend bien la perplexité de l'étudiant débutant.
Il faudra donc apprendre des techniques de bases indispensables avant tout.
Comment faire des boucles, des conditions , des comparaisons , des calculs, des pointeurs , des piles, des compteurs, de timers, des entrées sorties, un programme principale , des routines, des cascades d'appel, ne pas dépasser les mémoires, gérer le temps réels, etc...
Pas mal de notions nécessaires avant de faire quoique ce soit.
Le C est il adapté au pic ?
Pas vraiment ...
Le C est basé sur l'utilisation d'une pile data , adapté au départ pour les Motorola et le PDP11 , le C inventé par Kernighan et Richie (K&R) pour programmer bien plus vite toute ces petits bout de programme automatiquement , un genre de super assembleur.
Au départ K&R compile et visionne systématiquement leur code asm , car le C n'est à ce moment qu'un turbo monté sur l'assembleur.
Et la connaissance de l'asm est alors indispensable et il n'est pas concevable au créateur de programmer en C sans connaître l'asm.
Mais maintenant on fait une confiance absolue au compilateur...
Il est certain que le code généré semble vraiment tortueux et vraiment lourdingue.
Mais l'utilisation du compilateur est un compromis entre le temps nécessaire à l'étude et la vitesse et longueur du programme.
Le programme a t il besoin de la vitesse maximum du µC ? Non
Le programme va t il utilisé toute la mémoire prog du µC ? Non
Alors le compilateur réduit le cout de développement et il est justifié.
Ce coté économique et cout de développement semble totalement hors sujet pour les profs.
Ce sera pourtant le critère numéro un en entreprise.
Sinon la solution peut être intermédiaire la partie nécessitant la vitesse en asm et le reste compilé.
Reste la taille du prog , mais généralement si la taille est limite on passe au modèle plus puissant.
Pourquoi Microchip a t il fait un µC aussi étrange.
A mon avis pour simplifier son schéma interne , moins il est complexe plus il facile à produire et coutera moins cher.
Cela au dépend de la facilité de programmation, d'ou la documentation impressionnante qui en fait était indispensable.
Ce qui a fait sa réussite , en premier lieu la doc , la bête noire du technicien est la doc , et là tout est expliqué de long en large et en travers et avec un sérieux absolu.
Les prix au départ étaient les meilleurs du marché.
Les boitiers , des boitiers minimum de 6 ou 8 broches et des cms de 5mm de coté , introuvable ailleurs, ça faisait la différence.
La caste des profs est une secte, pour enseigner il faut en faire partie quand on voit les moyens déployés pour le peu de résultats , bref ...
Si l'on veut faire partager ses connaissances on vous répond il faut écrire une lettre au recteur d'académie, lequel s'en balance comme de sa première chemise , et si en plus on n'a pas suivis la filière prof , peine perdu.
En France on est pas prêt de s'en sortir ...
C'est plus important de faire de la répression routière que de s'occuper des vrais problèmes de société.
-----