Résolu Convertir un fichier texte en fichier .hex ?

  • Auteur de la discussion pinou29
  • Date de début
P

pinou29

Compagnon
Bonjour.
Un membre de cette honorable assemblée aurait-il le temps et la gentillesse de m'expliquer comment convertir un fichier texte (programme à mettre dans un PIC) en fichier .hex.
J'ai su faire ça il y a ouuuuuuuuuuuhhhhhhhhhh, longtemps mais la mémoire s'échappe en avançant dans l'âge.
Évitons quand-même les critiques sur les PIC(s), le type de montage, etc, etc, je sais que c'est dépassé mais moi ,j'aime bien.
La suite en MP si possible pour ne pas polluer.
Merci.
Bernard.
 

Fichiers joints

  • Test.txt
    4.4 KB · Affichages: 90
M

myf

Apprenti
Bonjour Pinou,

Le fichier que tu envoies est le code-source (en C ou un langage assez proche) d'une puce.
La méthode habituelle consiste plutôt de le compiler pour CE processeur, puis éventuellement de le lier avec ses bibliothèques.

A mon avis il faut plutôt que tu trouves le bon compilateur C. Celui-ci peut tourner "sur un PC" et produire le code "d'un micro-controleur". On parle alors de compilateur "croisé". Le programme "binaire" obtenu sur le PC est simplement un fichier et ne tourne pas sur le PC. Il faut l'exporter dans le micro-contrôleur. Sous toute réserve, je crois que c'est le cas de l'arduino.

Si j'ai bien compris, certaines puces ont eut un interpréteur basic d'inclus dedans (peut-être certains PIC???) et maintenant sur le même principe on trouve des puces (avec prise USB comme l'arduino) qui reçoivent des commandes Python en texte, et l'exécutent directement car elles contiennent un interpréteur Python dedans : puces micropython (cf micropython.org), pyboard, microbit (sur aliexpress), etc.

J'espère que cela répond à ta question.

Bien cordialement.

F.
 
S

speedjf37

Compagnon
Bonjour,

Tout est dit dans l'entête du fichier:

// Interfacing PIC16F84A with DHT22(AM2302,RHT03) sensor CCS C code

Type du PIC 16F84A
Capteur : DHT22
compilateur CCS pour code type 'C donc renommer le fichier en xyz.c

Il faut le compilateur CCS pour générer le hex et un programmateur pour flasher le 16F84A.

As tu le matériel nécessaire ?

Cordialement JF
 
P

pinou29

Compagnon
Bonsoir.
Il faut le compilateur CCS pour générer le hex et un programmateur pour flasher le 16F84A.
As tu le matériel nécessaire ?
J'ai programmé des 16F84 il y a quelques années, fut un temps j'utilisais MPlab, le fichier asm qui allait bien mais tout ça s'est dilué dans ce qu'il me reste de cerveau, c'est à dire un neurone et aujourd'hui je n'y arrive plus, pas bon de vieillir.
Pour "flasher" le pic j'ai un montage trouvé sur le net du site Kudelsko: http://kudelsko.free.fr/prog_pic_usb_V2/sommaire.htm
Merci.
Bernard.
 
M

midodiy

Compagnon
Ton fichier est en C, il te faut donc un compilateur C qui va te produire un fichier hex.
 
S

stef1204

Compagnon
J'ai compilé le programme, 19 erreurs relatif au LCD, je vais faire dodo, eventuellement je regarde ou est le problème.
 
T

TryAgain

Apprenti
Un membre de cette honorable assemblée aurait-il le temps et la gentillesse de m'expliquer comment convertir un fichier texte (programme à mettre dans un PIC) en fichier .hex.
Certains fabricants de carte à base de PIC fournissent tout l'env de compilation adapté à leur carte.
D'une manière générale c'est sur le site du fabricant de la carte qu'on trouve les outils (sauf si on a juste le chipset)
Exemple pour Diligent qui offre MPIDE
C'est une dérivation de l'Arduino IDE adaptée. (intégrée depuis 2015 à l'IDE Arduino)
:)
 
Dernière édition:
S

stef1204

Compagnon
Il manque la librairie du LCD 2*16.

J'ai utilisé une lib pour ce type de display, me donne encore 4 erreurs, probablement pas la bonne lib :smt077
 
F

f6exb

Compagnon
Y at-til un compilateur C compatible avec la syntaxe du CCS ? Car ce dernier est payant et je n'ai pas le fichier .crg.
 
M

midodiy

Compagnon
Sous mplabx, il y en a un gratuit. Je crois qu'il est compatible css. J'ai deja fait des essais en C mais c'est pas mon fort...
 
P

pinou29

Compagnon
Bonjour.
Merci beaucoup f6exb pour ton travail, si tu en as le temps tu voudras bien m'expliquer comment tu as fait, cette semaine je vais réaliser le montage qui va avec et mettrais le résultat ici.
Merci encore.
Bonne semaine.
Bernard.
 
S

stef1204

Compagnon
Simple, j'ai signalé qu'il te manquait la librairie du display, je l'ai fait également avec la bonne cette fois sans erreurs de compilation.

#include <lcd.c>

Cordialement
 
F

f6exb

Compagnon
Salut Bernard,
Depuis ton premier message, je savais qu'il fallait compiler le fichier texte, mais j'ai toujours un peu survolé la programmation des PIC, des AVR Atmel, etc. Je suis un peu touche à tout.
J'ai donc essayé avec ce que j'avais sous la main comme compilateur et je tombais sans arrêt sur des erreurs. J'en ai téléchargé d'autres et apparemment ils ne sont pas tous compatibles du point de vue syntaxe du langage source.
J'avais bien un CCS dans un coin de mon HD, mais pas à jour de licence.
En batifolant sur le net, je suis tombé sur un forum qui disait que Microchip avait un plugin pour CCS. Je l'ai téléchargé depuis http://www.ccsinfo.com/compdemo.php et installé. Il a l'air autonome et se passe de Mplab.
Il est valable 45 jours et après, je ne sais pas s'il sera mort ou s'il perdra des fonctionnalités.

Il y a une erreur dans le texte d'origine : il y a un #include tout seul alors que ce devrait être #include <lcd.c>

J'ai renommé le fichier texte avec l'extension .c. Prends la version que j'ai mise ci-dessus avec la coloration syntaxique.
Télécharge le compilateur.
Tu le retrouveras sous le nom demoupd.exe
installe-le.
Dans C:\Program Files (x86)\PICC tu double-cliques sur pcw.exe (leur IDE)
Fichier===> open===> source et tu choisis le fichier .c
Onglet "compile"
Tu remplis la partie "target" avec le type de micro.
===> build
Tu récupères les fichiers dans le répertoire où se trouve le fichier source.
 
Dernière édition:
  • Réagir
Reactions: myf
P

pinou29

Compagnon
Bonsoir.
Alors, j'ai chargé le programme, mais j'ai besoin (encore) d'une aide.
Tu dis:
Fichier===> open===> source et tu choisis le fichier .c
Alors, ce que j'ai fait:
J'ai fait un copier/coller du fichier c, mis dans le bloc note et sauvegardé dans un dossier et changé l’extension .txt en .c puis les manips indiquées.
J'ai bien trouvé dans le dossier source le fichier .hex et injecté dans le pic, je n'ai pas eu d'erreur.
Comme je voulais voir si ça marchait j'ai réalisé le montage prévu mais, je n'ai que des petits rectangles noirs sur la première ligne de l'afficheur.
Schéma.png

J'ai vérifié et re, re, re, vérifié mon câblage sans trouver d'erreur.
Le schéma est-il bon ?
Merci.
Bonne semaine.
Bernard.
 
Dernière édition:
F

f6exb

Compagnon
Il n'y a pas un réglage du contraste sur cet afficheur ?
Je pense qu'il faut touiller le potar de 10 k.
 
P

pinou29

Compagnon
Il n'y a pas un réglage du contraste sur cet afficheur ?
Je pense qu'il faut touiller le potar de 10 k.
C'est ce que j'ai fait mais ça ne change rien, si ce n'est que les rectangles disparaissent ou non selon le réglage.
 
P

pinou29

Compagnon
C'est bon, ça fonctionne, sur le schéma il manque l'alimentation du PIC sur les broches 5 et 14.
Merci à tous pour votre aide, le problème est résolu.
Bonne semaine.
Bernard.
 
F

f6exb

Compagnon
Au poil, ça m'a permis de me replonger un peu dans tout ça.
T'as tout recompilé ou utilisé le fichier du #12 ?
 
P

pinou29

Compagnon
Bonjour.
T'as tout recompilé ou utilisé le fichier du #12 ?
J'ai fait comme décrit dans la réponse #16, j'ai fait un copier/coller du fichier c, mis dans le bloc note et sauvegardé dans un dossier et changé l’extension .txt en .c puis les manips comme indiquées avec le programme PIC-C Compiler
Je ne sais pas si c'est la bonne méthode que de changer l'extension mais pour moi ça a marché.
Merci encore.
Bonne semaine.
Bernard.
 
Haut