Go Down

Topic: conversion code pic 16F876 >>>>arduino (Read 202 times) previous topic - next topic

markenri

Mar 26, 2019, 05:29 pm Last Edit: Mar 26, 2019, 05:32 pm by markenri
Bonjour,

je suis très novice en programmation.
Je n'ai aucune notion en ASM mais quelques petites connaissances en C.
J'ai réalisé un résistivimetre
J'ai un fichier Pic en ASM et je voudrais avoir l'équivalent pour l'Arduino.
Le tout, dans un but  d'y apporter des modifications dans le fonctionnement.
Ce prog gère le fonctionnement du résistivimetre et fait également data logger
afin de transférer les données recueillies sur le pc.
Pr la partie conversion ADC, j'ai vu plusieurs prog dans le forum, de résistivimetre qui feraient l'affaire.
Là où cela se complique c'est pour la partie data logger et l'envoie d'un fichier vers le PC
dans un format bien défini.
En fichier joint le prog Pic en ASM.

Merci pour tous vos conseils et aide possible .

Markenri



al1fch

#1
Mar 26, 2019, 05:37 pm Last Edit: Mar 26, 2019, 06:01 pm by al1fch
Bonjour

La conversion sans effort d'un code écrit en assembleur PIC16 vers le langage C de l'Arduino n'est pas possible, ......d'autant plus que le langage assembleur des PIC est assez 'original' et 'atypique'

Elle nécessite une bonne  compréhension de l'algorithme à l'oeuvre dans le PIC et l'écriture de ce même algorithme en C.

Quelle est votre compréhension de l'assembleur PIC16 ?
Quelle est votre compréhension de l'enchaînement des actions dans le programme joint ?

+garder à l'esprit que personne sur ce forum n'écrira le programme à votre place.

Quote
Là où cela se complique c'est pour la partie data logger et l'envoie d'un fichier vers le PC
dans un format bien défini.
Un exemple fourni avec la librairie SD Arduino montre un 'datalogger' au format CSV sur carte SD
Il est aussi possible de coller plus près au programme PIC en utilisant les exemples de la librairie EEPROM et la communication série vers le PC

kamill

Bonjour,

Si tu n'as aucune connaissance en assembleur, mets ton fichier assembleur à la poubelle et écrit un programme en C++ ex nihilo à partir des spécifications.
Je dirais même que si tu connais bien l'assembleur, tu gagneras du temps à faire ça.

al1fch

Quote
Si tu n'as aucune connaissance en assembleur, mets ton fichier assembleur à la poubelle et écrit un programme en C++ ex nihilo à partir des spécifications.
On ne conseille pas le cours de Bigonoff ?? :)

markenri

merci pour vos réponses

la seule partie qui me causerait pb c'est la partie data logger
au format qui corresponde à celui du Pic afin de transférer
le fichier enregistré vers le PC .

Artouste

Bonjour,

je suis très novice en programmation.
Je n'ai aucune notion en ASM mais quelques petites connaissances en C.
J'ai réalisé un résistivimetre
J'ai un fichier Pic en ASM
Bonsoir
la realisation initiale sur pic a été conçue Hard et soft par toi ?
Tu dispose d'un source .ASM ou d'un .hex ?

elektrax

#6
Mar 27, 2019, 06:07 am Last Edit: Mar 27, 2019, 06:17 am by elektrax
Bonsoir
la realisation initiale sur pic a été conçue Hard et soft par toi ?
Tu dispose d'un source .ASM ou d'un .hex ?
markenri précise qu'il n'a aucune notion asm et qu'il a trouvé des prog arduino de résistivimetre qui feraient l'affaire, la question se résume donc à envoyer un fichier data vers le pc, je pense que le earthmeter 16f876 était couplé a un soft en VB pour exploiter le fichier data en une visualisation graphique
la réponse de kamill étant d'un réalisme époustouflant...
PS : j'ai ouvert l'asm par curiosité et mon intuition intime s'est confirmée : c'est un article paru dans epemag/siliconchip en 2003, auteur John Becker étant le P.Guelle australien, (ok compréhensible par les aficionados de radioplans des années 70-80)

markenri

Bonjour Artouste,

merci pour ta réponse,
non, la conception hard et soft vient de John Becker,
dans la revue EPE de 1999.
IL donne le fichier ASM et Hex.
Le principe général de son code est le suivant :
- la partie analogique:
   - récupérer une tension analogique provenant d'une sonde
      et l'envoyer sur RA3 du PIC(entrée analogique)
   
- la partie numérique:
    - moyenner 32 fois/sec le maxi et le mini de cette tension
    - l'envoyer vers l'afficheur
    - la mémoriser manuellement après avoir sélectionné
      manuellement la colonne et la rangée du prélèvement du signal sur le site
      (les sondes sont déplacées manuellement selon un matriçage colonne et rangée) 
   - mise ne mémoire de la tension moyennée sur une EEPROM 24LC256
   - transfert de toutes ces données vers le PC par liaison sérielle Max232

Je converti la sortie db9 vers USB grâce à un adaptateur.
Les données sont ensuite traitées par un logiciel .
Voila le fonctionnement général du code. 

al1fch

#8
Mar 27, 2019, 04:06 pm Last Edit: Mar 27, 2019, 04:19 pm by al1fch
Bonjour,

Avec cette description de la logique du code, le portage sous Arduino ne devrait pas poser de gros pb. Chaque partie correspond à une tâche courante.

Les tutoriels conseillés (zeste de savoir) , les exemples fournis avec l'iDE Arduino.... devraient permettre de rédiger un code puis de le proposer içi pour avis, correction , amélioration...

pomme-poire

+1, le convertisseur rs232, met le coté PC ça va t'éviter des galères.

c'est sur, tu aurais aimé un "convertisseur 16f vers arduino" je te comprends.
prends un stagiaire ! y'en a plein qui cherche des stages à faire ! :)
bon, y'a des chances qu'on le vois débarquer ici , ce forum m'a déjà vachement aidé. 

Artouste

Bonjour Artouste,

merci pour ta réponse,
non, la conception hard et soft vient de John Becker,
dans la revue EPE de 1999.
IL donne le fichier ASM et Hex.
Le principe général de son code est le suivant :
- la partie analogique:
   - récupérer une tension analogique provenant d'une sonde
      et l'envoyer sur RA3 du PIC(entrée analogique)
  
- la partie numérique:
    - moyenner 32 fois/sec le maxi et le mini de cette tension
    - l'envoyer vers l'afficheur
    - la mémoriser manuellement après avoir sélectionné
      manuellement la colonne et la rangée du prélèvement du signal sur le site
      (les sondes sont déplacées manuellement selon un matriçage colonne et rangée)  
   - mise ne mémoire de la tension moyennée sur une EEPROM 24LC256
   - transfert de toutes ces données vers le PC par liaison sérielle Max232

Je converti la sortie db9 vers USB grâce à un adaptateur.
Les données sont ensuite traitées par un logiciel .
Voila le fonctionnement général du code.  
ok
C'est çà la base de depart ?

markenri


Go Up