FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  utilisation de l'hyper terminal

 




Il y a 31 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
 Page :  1  2
Page Précédente 
Auteur Sujet :

utilisation de l'hyper terminal

n°7674
jolof
Posté le 05-11-2007 à 13:56:30  profilanswer
 

bonjour
je dois communiquer avec mon microcontroleur via l'hyper terminal pour recuperer des donnees mais je sais pas comment l'utiliser! y'a t'il des commandes specifiques?

mood
Google
Posté le 05-11-2007 à 13:56:30  profilanswer
 

n°7675
ced-2k
TODO : Insert text here.
Posté le 05-11-2007 à 15:52:02  profilanswer
 

Non, tout ce que tu tappes est envoyé tel quel à l'équipement en bout de ligne.
 
Les commandes que tu dois tapper sont donc celles que ton µC comprend :)

n°7676
jolof
Posté le 05-11-2007 à 17:02:09  profilanswer
 

ced-2k a écrit :

Non, tout ce que tu tappes est envoyé tel quel à l'équipement en bout de ligne.
 
Les commandes que tu dois tapper sont donc celles que ton µC comprend :)


 
le probleme est que il ya rien qui apparait sur le terminal je sais pas si c'est normal ou pas? car n'ayant jamais utilise ca je m'y connais pas trop!
merci d'avance.

n°7677
ced-2k
TODO : Insert text here.
Posté le 05-11-2007 à 20:00:09  profilanswer
 

Ce qui s'affiche c'est ce que tu µC va envoyer ou ce que tu tapperas au clavier...
 
Difficile à dire sans savoir ce qu'il y a dans ton µC.

n°7681
jolof
Posté le 06-11-2007 à 09:51:31  profilanswer
 

en fait je dois recuperer des donnees stockes dans le microcontroleur via le l'hyper terminal. j'ai essaye de connecter le microcontroleur au PC mais quand je tappe quelquechoses sur le clavier ya rien qui s'affiche sur l'yper terminal.

n°7682
Dr lous
I see old password
Posté le 06-11-2007 à 11:50:19  profilanswer
 

normal il n'y a pas l'echo local activé :)
 
pour activé l'echo,  
Fichier -> "Proprietés"
Onglet "Paramètres"
Boutton "Configuration ASCII"
Cocher la checkbox "Reproduire localement les caractères entrés"
 
:)

n°7683
jolof
Posté le 06-11-2007 à 14:28:13  profilanswer
 

merci j'ai fait ca c'est bon! mais un autre probleme j'ai choisi une vitesse 38400 dans les deux cotes mais la transmission est trop lente!je sais pas pourquoi?

n°7684
Dr lous
I see old password
Posté le 06-11-2007 à 15:36:02  profilanswer
 

tu transfere quelle quantité de donnée ?
 
Car 38400 c'est déjà pas mal comme débit avec un µC !  
(38400 ca fait 32.81Ko/s)

n°7685
jolof
Posté le 06-11-2007 à 16:34:23  profilanswer
 

je pense la quantite de donnees ne sera pas enormes car ce sera les donneers a la sortie du convertisseur analogique numerique et qui sont stockees dans le microcontroleur.j'ai encore un autre souci car j'ai reussi a envoyer des donnees sur l'hyper terminal mais ce ne sont pas les bonnes valeur, ca m'affiche des valeur en code ascii!!!et moi je les veux en integer>comment faire?

n°7686
Dr lous
I see old password
Posté le 06-11-2007 à 17:47:34  profilanswer
 

utilise "realterm" :) c'est mieux comme terminal rs-232 ;)
hyperterminal c'est concu comme le principe du minitel et du vt100
 
sinon regarde si ton pic sort bien les caracteres en continu et que tu n'est pas tout simplement un µC pas asser rapide ;)

n°7688
jolof
Posté le 07-11-2007 à 09:06:27  profilanswer
 

ok!je vais voir avec le realterm!sinon j'utilise le msc1210 et non un pic.il  cadebce a 24,6Mhz.

n°7689
jolof
Posté le 07-11-2007 à 15:04:49  profilanswer
 

sinon j'ai un autre souci pour interpreter le resultat d'un convertisseur analogique numerique.
supposons a la sortie du CAN j'ai 0x010a03, la tension a pleine echelle est 2.5v qui correspond a 0x7fffff
comment faire pour avoir la valeur qui correspond a 0x010a03?

n°7690
Dr lous
I see old password
Posté le 07-11-2007 à 15:56:48  profilanswer
 

il faut connaitre ton "pas" et 0x010a03 ca fait quand meme 3 couple de 255 donc 16777216 de valeurs, un CAN de 24bits ?
 
si resolution linéaire  
0x7FFFFF = 8388607   =  01111111 11111111 11111111 = 2.5V
0xFFFFFF = 16777215 = 11111111 11111111 11111111 = 5V
0X000001 = 1 = 00000000 00000000 00000001 = 0,000 000 298 023... V  
donc 0x010a03 = 68099 (* 0.000 000 298 023) =  0,02029... V
 
un CAN de 24Bits sur une plage de 0 à 5V c'est un peu con, car tu as la perte dans les cables/piste, induction-perturbation-vref pas tres stable...
un 8 bits dans la plupart des cas, voir un 16bits (65535 valeur = pas de 0,076 mV ! pour une plage de 5V)
 
:)

n°7691
jolof
Posté le 07-11-2007 à 16:03:03  profilanswer
 

merci pour la reponse
en fait j'utilise une resolution de 24 bits et une plage de tension de 0 a 2.5v car je dois mesurer des tension a l'ordre de quelque micro volts.
le pas est egal a Vref/(2^23-1)

n°7692
Dr lous
I see old password
Posté le 07-11-2007 à 16:06:09  profilanswer
 

ok :) n'oublie pas tout les problèmes a de telle mesures ;) (blindage, diaphonie, parasites, induction, capacitance des cables, ...)

n°7693
jolof
Posté le 07-11-2007 à 16:07:18  profilanswer
 

et pour les valeurs negatives pour trouver la correspondance en volt je dois faire un test sur le bit de poids fort pour voir si c'est 1 ou 0?

n°7694
Dr lous
I see old password
Posté le 07-11-2007 à 16:33:51  profilanswer
 

Faut voir si ton CAN peut le faire ;) si tu travail avec un espace de -2.5V a 2.5V il suffit de mettre ton Vref à -2.5V et ton "0" sera à 0x7FFFFF ;)
 
edit: oublie pas dans ce cas de décaller ta masse de ton CAN a -5V :)


Message édité par Dr lous le 07-11-2007 à 16:34:13
n°7695
jolof
Posté le 07-11-2007 à 16:41:09  profilanswer
 

en fait tout a l'heure je m'etais trompe quand je t'ai dit la plage est 0 a 2.5 mais c'est -2.5 a 2.5v.
j'utilise le CAN ads1271.

n°7696
Dr lous
I see old password
Posté le 07-11-2007 à 17:27:22  profilanswer
 

tu reprends le meme calcul que moi mais tu enleve 2.5V xD

n°7697
jolof
Posté le 08-11-2007 à 09:16:08  profilanswer
 

donc en resume je regarde le signe de parite si c'est positif j'utilise :
(valeur renvoyee par CAN sans bit de signe )*Vref/(2^23-1) si c'est negatif je mets -(valeur renvoyee par CAN sans bit de signe)*Vref/(2^23-1)

n°7698
Dr lous
I see old password
Posté le 08-11-2007 à 09:54:04  profilanswer
 

http://www.ti.com/lit/gpn/ads1271 ;)
 
page 16 et page 25, tu as toute l'analyse des data ;)

n°7699
jolof
Posté le 08-11-2007 à 10:44:58  profilanswer
 

merci1
tu es trop sympa, grace a toi j'ai compris plein de choses sur les can.

n°7700
Dr lous
I see old password
Posté le 08-11-2007 à 11:07:12  profilanswer
 

si j'ai pu aider, j'en suis content ;)

n°7701
jolof
Posté le 08-11-2007 à 11:11:00  profilanswer
 

juste une autre question si ca te derange pas
dans le cas j'ai a la sortie de mon can quelquechose comme 0xf85644..
je dois enlever le bit de signe avant de calculer la valeur correspondante en volt?
merci

n°7702
Dr lous
I see old password
Posté le 08-11-2007 à 11:22:26  profilanswer
 

lit la doc avant ;), elle explique completement la lecture des données ;)

n°7703
jolof
Posté le 08-11-2007 à 11:28:44  profilanswer
 

ok! ca marche

n°7704
jolof
Posté le 08-11-2007 à 15:04:06  profilanswer
 

merci bien!Dr Lous j'ai compris et ca marche .

n°7705
Dr lous
I see old password
Posté le 08-11-2007 à 15:26:57  profilanswer
 

;) Il suffit dans 99% des cas, de lire la documentation :)
 
 
:)

n°7713
jolof
Posté le 14-11-2007 à 09:15:55  profilanswer
 

slt
j'ai un autre souci pour afficher mes resultats de conversion sur le realterm.je parviens a bien les afficher sur le terminal du logiciel keil en sumulation mais quand je mets le programme sur le microcontroleur sur le realterm ca m'affiche des truc bizarre je sais pas pourquoi!
voici en dessous la fonction d'affichage.
 
for(i=0; message[i]!='\0';i++)
   { printf ("\r Resultat de conversion: %g\n\r",message[i]);}

n°7714
jolof
Posté le 14-11-2007 à 16:30:51  profilanswer
 

quelqu'un aurait il un idee la dessus?

n°7715
Dr lous
I see old password
Posté le 14-11-2007 à 18:34:05  profilanswer
 

parce que tu recois surement des valeurs en non ascii, change dans realterm la premiere page tu as le mode d'interpretation des données : essaye par exemple hexa, binaire, ...  
 
:)

n°7716
jolof
Posté le 15-11-2007 à 09:20:39  profilanswer
 

j'ai essaye avec tous les modes mais a chaque fois c'est pas le bon message qui s'affiche.dans mon tableau j'ai des valeur reelles donc normalement je devais retrouver ces valeurs s'afficher dans le terminal.
la fonction envoi_data() me permet d'envoyer le tableau sur l'hyperterminal

Code :
  1. long int tableau[]={0x7fffff,0xffffff,0x800000,0x000001,0xf25f9f,0xf963ff,0x802310,0x876301,0x00149f};
  2. void envoi_data(void)
  3. {
  4.   int i;
  5.   printf ("Debut de transmission\r\n\r\n" );
  6.   printf ("Toutes les valeur sont en volts\r\n\r\n" );
  7.   for(i=0;i<9/* tableau[i]!='\0'*/;i++)
  8.    { printf ("\r Resultat de conversion: %.12f\n\r",tableau[i]);}
  9.   printf("\n\r la transmission est terminee!!!\r\n\r" );
  10.  printf("\n\r-----------Au Revoir------------\r\n\r" );
  11.  printf ("\r\n\r\n" );
  12.  printf ("||****************************************||" );
  13.  printf ("\r\n\r\n" );
  14. }
  15. while (1)
  16. {
  17.  if(transfert==1){PDCON = PDCON& 0xFF;
  18.  //hexa_decimal();  
  19.  envoi_data();
  20.  transfert=0;
  21.  PDCON = PDCON& 0xFE;} //verifie si transmission autorisee? si oui conversion du resultat du can en decimal
  22. }


Message édité par jolof le 19-11-2007 à 15:18:15
n°7719
jolof
Posté le 19-11-2007 à 15:55:28  profilanswer
 

quelqu'un a t'il des idees la dessus?

n°7720
Dr lous
I see old password
Posté le 19-11-2007 à 16:05:15  profilanswer
 

0xffffff en float ca va pas te donner 2,5465456V (par exemple), mais 16777215.0 s'tout.
 
tu convertit rien dutout
 

n°7721
jolof
Posté le 19-11-2007 à 16:23:46  profilanswer
 

Dr lous a écrit :

0xffffff en float ca va pas te donner 2,5465456V (par exemple), mais 16777215.0 s'tout.
 
tu convertit rien dutout
 


 
 
non je me suis trompe c'est pas des valeur en hexa mais reelles
 
long int tableau[]={2.7,65,-87.693,+82.13,123.01,0.245,20.3214,0.000123};

n°7722
jolof
Posté le 19-11-2007 à 16:26:12  profilanswer
 

j'ai oublie de preciser dans le port serie du logicielle keil j'obtient les bonnes valeurs, le probleme c'est quand je mets le prog dans le microcontroleur

n°7723
Dr lous
I see old password
Posté le 19-11-2007 à 16:33:44  profilanswer
 

et tu recois quoi dans realterm ? la mantisse et l'exposant normalement ? peut tu donner un exemple en hexa des caractere recu ?

n°7724
jolof
Posté le 19-11-2007 à 16:49:57  profilanswer
 

Dr lous a écrit :

et tu recois quoi dans realterm ? la mantisse et l'exposant normalement ? peut tu donner un exemple en hexa des caractere recu ?


attends je vais mettre ce que j'ai fais

Code :
  1. xdata long int tab[]={0x7fffff,0xffffff,0x800000,0x000001,0xf25f9f,0xf963ff,0x802310,0x876301,0x00149f};
  2. xdata float  message[20]=0;
  3. void hexa_decimal(void)
  4. {
  5.   int i;
  6. long int comple, converse=0;
  7. for (i=0;i<9/*tab[i]!='\0'*/; i++)
  8.  {
  9.  if ((tab[i]>>23)==0)
  10.   {
  11.       resultat=+(tab[i]*(2.5))/(8388607);   //  8388607=(2^23 - 1)
  12.    message[i]=resultat;
  13.   }
  14.  else
  15.   {
  16.   if(tab[i]>0x800000){         //test si tab[i]>0x800000
  17.   comple=~((0xff000000)|(tab[i]));  //  complement a 2 de la valeur contenue dans le tableau
  18.   converse=comple|(0x000001);
  19.   resultat= -converse*(2.5)/(8388607);
  20.   message[i]=resultat;}     //calcul du resultat
  21.   else{resultat=-2.5;
  22.   message[i]=resultat;}
  23.    }
  24. }
  25. }
  26. void envoi_data(void)
  27. {
  28.   int i;
  29.   printf ("Debut de transmission\r\n\r\n" );
  30.   printf ("Toutes les valeur sont en volts\r\n\r\n" );
  31.   for(i=0;i<9;i++)
  32.    { printf ("\r Resultat de conversion: %.12f\n\r",message[i]);}
  33.   printf("\n\r la transmission est terminee!!!\r\n\r" );
  34.  printf("\n\r-----------Au Revoir------------\r\n\r" );
  35.  printf ("\r\n\r\n" );
  36.  printf ("||****************************************||" );
  37.  printf ("\r\n\r\n" );
  38. }
  39. void main (void)
  40.     choix_voie=0;
  41.     init_system();
  42.     setup_SPI();
  43.     com_initialize ();              /* initialize interrupt driven serial I/O */
  44.     mux_voie() ;            //configuration du switch   
  45.     EAI=1;              // enable Auxiliary interrupts
  46. EA = 1; 
  47.  
  48.   while (1)
  49. {
  50.  if(transfert==1){
  51.  hexa_decimal();
  52.  envoi_data();
  53.  transfert=0;} //verifie si transmission autorisee? si oui conversion du resultat du can en decimal*/
  54. }
  55. }


donc c'est ca la partie qui pose soucis
quand je regade sur l'interface du port serie du logiel j'ai les valeurs converties en reels dans le tableau message[] mais une fois le prog transfere dans le microcontroleur ca m'affiche des 0 a la place des bonnes valeurs.c'est comme si il affichait a chaque les valeurs initiales du de message[];

n°7725
jolof
Posté le 20-11-2007 à 15:57:09  profilanswer
 

alor rien trouve?

n°7726
Dr lous
I see old password
Posté le 20-11-2007 à 16:46:58  profilanswer
 

Dr lous a écrit :

et tu recois quoi dans realterm ? la mantisse et l'exposant normalement ? peut tu donner un exemple en hexa des caractere recu ?


 
 
le code source m'en tape un chouilla pour l'instant, il me faut surtout l'exemple de char recu , pour voir deja si tu recois qqchose de cohérant... et n'oublie pas que j'ai pas que ca a faire de trainer sur le forum, je taff ;)

mood
Google
Posté le 20-11-2007 à 16:46:58  profilanswer
 

 Page :  1  2
Page Précédente 

Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  utilisation de l'hyper terminal

 

Hit Parade