c'est vrai que la ca laisse réfléchir. Donc en faite la meilleure solution c'est ce que vous proposez, et je dois ensuite faire un petit programme sur le pc afin de convertir les bits en caractéres.
Mais la se pose le probléme (enfin pour moi) d(utiliser la mémoire du µc pour ne pas ecraser à chaque fois les données reçuent. J'ai pu créer la liaison serie avec MikroC en utilisant la fonction Init_Usart(), Xrit_Usart().
Je vous montre le programme que j'ai ecrit. Un fichier texte est joint, dites moi ce que vous en pensez.
bonjour,
Par contre si tu stockes les données dans le microp il va surement falloir prevoir un horodatage pour retrouver tes petits quand tu va les transferer sur le pc. Ca peut prendre pas mal de place supplementaire.
fred
15/06/2006 - 09h00
etienneh
Date d'inscription
mai 2006
Messages
45
Re : Usart ou I2C?
Envoyé par verdifre
bonjour,
Par contre si tu stockes les données dans le microp il va surement falloir prevoir un horodatage pour retrouver tes petits quand tu va les transferer sur le pc. Ca peut prendre pas mal de place supplementaire.
fred
Effectivement, ca peut être un problème.
Dans un projet pour lequel je travaille, j'ai opté pour un horodatage relatif (vu qu'avec un quartz 4 MHz, une horloge temps réel est problématique).
Pour te donner une piste là-dessus, srr, tu peux compter le temps (grossièrement) entre la prise de mesure et la transmission. Du côté PC, tu remets tout ca en place. Avec un "unsigned int" pour gérer le temps relatif, tu t'en tires pour 18 heures avant débordement, avec une précision à la seconde ! Et tout ca pour uniquement 16 bits. Elle est pas belle la vie ?
15/06/2006 - 10h38
srr
Date d'inscription
janvier 2006
Messages
66
Re : Usart ou I2C?
Ok et merci,
Je compte utiliser un quartz de 10MHz (plus simple pour les temps de cycles).
Donc dés que je fait une mesure j'ai un mot sur 16bits qui determine le temps. De cette manière je peux aussi juste incrémenter et à chaque fois que je recherche les données je donne la valeur de ce mot. Il est vrai que si je fait un horloge "pseudo-réelle" il me sera plus facile de rechercher mes données!!!
Cependant, avec MikroC, je ne trouve pas les fonctions permettant de pouvoir utiliser la mémoire du µc, avec MPLAB C18 je devrais utiliser les fonctions définies dans memory & string (ex: memechar, memecpy, ...).
Est-ce bon? Suis-je sur la bonne voie? Y'a t-il une autre manière d'exploloiter la memoire du µc?
15/06/2006 - 10h42
srr
Date d'inscription
janvier 2006
Messages
66
Re : Usart ou I2C?
oups petite erreur de ma part lol
15/06/2006 - 10h49
etienneh
Date d'inscription
mai 2006
Messages
45
Re : Usart ou I2C?
Envoyé par srr
Cependant, avec MikroC, je ne trouve pas les fonctions permettant de pouvoir utiliser la mémoire du µc, avec MPLAB C18 je devrais utiliser les fonctions définies dans memory & string (ex: memechar, memecpy, ...).
Est-ce bon? Suis-je sur la bonne voie? Y'a t-il une autre manière d'exploloiter la memoire du µc?
Je ne connais pas MikroC, mais effectivement, en C, tu réserves de la mémoire avec la fonction malloc(); tu y accèdes en utilisant le pointeur mémoire retourné.
Si ce que je dis ne t'es pas familier, je te conseille de te tourner vers des tutoriels de langage C, à la rubrique "mémoire dynamique". Tu en trouveras de très bons en cherchant sur Google.
Amicalement,
E.
15/06/2006 - 12h32
srr
Date d'inscription
janvier 2006
Messages
66
Re : Usart ou I2C?
Ok merci du conseil, je vais voir de suite. Sinon je peux le faire avec MPLAB C18, ce log est plus commun pour la prog', enfin par raport à MikroC
16/06/2006 - 13h00
srr
Date d'inscription
janvier 2006
Messages
66
Re : Usart ou I2C?
Re, J'ai un petit probléme avec C18,
voila j'ai déclaré un tableau et quand je veux lui affecter une chaine de caractére il me sors une erreur en compilant: voici le tableau avec l'erreur
static char rapportest [16][10];
static int i,j,k,m=0; // variables permettant de naviguer dans le tableau (l sert pour la boucle).
static unsigned int tlp,search,find1,find2,*p;
TRISA=TRISB=TRISD=1; // initialisation des ports en entrées.
// initialisation du tableau.
rapportest [0][0]="Nom";
rapportest [0][1]="Etat";
rapportest [0][2]="Etat";
rapportest [0][3]="Etat";
V:\Analyseur test auta\acquisition données pic\AU.TA.c:21:Error [1131] type mismatch in assignment
V:\Analyseur test auta\acquisition données pic\AU.TA.c:22:Error [1131] type mismatch in assignment
V:\Analyseur test auta\acquisition données pic\AU.TA.c:23:Error [1131] type mismatch in assignment
V:\Analyseur test auta\acquisition données pic\AU.TA.c:24:Error [1131] type mismatch in assignment
Que dois-je faire?
16/06/2006 - 14h53
monnoliv
Date d'inscription
décembre 2003
Localisation
Belgique
Messages
2 311
Re : Usart ou I2C?
Quand tu fais
Code:
rapportest [0][0] = "sdfsdqf"
tu es en train de vouloir assigner une chaîne de caractères (plusieurs caractères donc) à une variable qui ne peut accepter qu'un caractère. Essaie plutôt
La solution de monnoliv ne me paraît pas très rigoureuse... Peut être que ca compilera, mais peut être aussi que ca ne marchera pas
En toute rigeur, tu dois utiliser la fonction memcpy(), parce que quand tu fais
rapportest [0]="Nom";
tu assignes une adresse mémoire "Nom" (char*) à une adresse mémoire statique (vu que tu as déclaré rapportest comme char[16][10], et non char*[16]).
Amicalement,
E.
19/06/2006 - 21h20
monnoliv
Date d'inscription
décembre 2003
Localisation
Belgique
Messages
2 311
Re : Usart ou I2C?
Effectivement, c'est assez brutal
Faudrait voir le code assembleur généré...
A+
Ne soldez pas grand mère, elle brosse encore.
20/06/2006 - 08h18
srr
Date d'inscription
janvier 2006
Messages
66
Re : Usart ou I2C?
euh en code assembleur ca risque d'etre dur vu que je suis une quiche an asm lol.
Je pensais à une chose aussi, vu que dans mon tableau je dois avoir sur la 1ere ligne des commentaires style "nom", "etat", et que sur la 1ere colonne je dois mettre le nom des information arrivant, cela me pose un probléme vu la manière dont vous me proposez de proceder pour remplir le tableau.
Je sais pas si je me suis bien fait comprendre.
20/06/2006 - 12h32
etienneh
Date d'inscription
mai 2006
Messages
45
Re : Usart ou I2C?
Srr,
Tu vas penser que je radote (et c'est le cas ), mais c'est pour la bonne cause :
Je te conseille VRAIMENT de stocker le *minimum* d'infos sur ta carte. Les chaines de caractère "NOM" et "ETAT" n'ont aucun intérêt pour le PIC, juste pour l'utilisateur final, donc tu devrais les utiliser une fois les infos transmises sur le PC !
Si ton tableau dans le pic est (par exemple)
Mesure Etat
12 VRAI
16 FAUX
987 VRAI
44 FAUX
ne déclare pas un tableau de type char[][]. qui contiendra les chaines de caractère; choisis plutôt un format auquel tu te tiendras, et n'utilise que
int mesures[MA_TAILLE];
char valeurs[MA_TAILLE];
ce qui sera beaucoup plus compact.
20/06/2006 - 13h46
srr
Date d'inscription
janvier 2006
Messages
66
Re : Usart ou I2C?
ok je vais faire ca, je ne penses pas que tu radottes, mais c'est pour mon bien et tu t'y connais mieux que moi, donc je vais suivre ton conseil !!!
Je vais juste installer visual C basic sur le pc et hop on récupére le tout.
Et puis pour les info' je n'aurais pas meme pas besoin de créer un tableau sur le pic alors!!! juste je compte le nombre d'info' analysées et avec le pc je fais l'analogie !!!
je vous tiendrais au courant de l'évolution
Franchement super forum vous etes des bons les mecs!!!!