FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  Affichage de variables décimale sur pic, en C

 




Aragorn le rouge, DoZz78 Overclocking : foxhound Tests Hardware : re12, 1 utilisateur anonyme et 21 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affichage de variables décimale sur pic, en C

n°7826
mdog
Posté le 10-02-2008 à 21:40:11  profilanswer
 

Bonjour à tous!
Je travaille à la réalisation d'un afficheur pour une fraiseuse numérique qui affichera la position courante de la machine sur chacuns des axes.
J'ai un petit soucis pour l'affichage de la position, au niveau des variables en fait.
 
Ma variable position affichée doit comporter 3 décimales, et je ne sais pas s'il éxiste un type de variable pour les valeures décimale en C sur pic...
 
Je vais utiliser ceci : http://fribotte.free.fr/bdtech/PICenC/code.c, qui est une bibliotheque pour le pilotage de LCD, et qui permet d'afficher des variables.
 
Ma question est donc la suivante, comment afficher une variable du type XXX,XXX ?
 
J'ai pensé utiliser deux variables, l'une pour les décimale et l'autre pour la partie entière, mais ensuite quelle type de variable utiliser vue qu'elles doivent varier de 0 à 999 ?
 
Merci d'avance.
 
@+
Mdog

mood
Google
Posté le 10-02-2008 à 21:40:11  profilanswer
 

n°7827
mdog
Posté le 11-02-2008 à 22:30:50  profilanswer
 

Bonsoir,
J'ai finalement trouvé seul la réponse, et vu que j'ai trouvé cette question pas mal de fois au cours de mes recherches, je poste donc la solution que je vais utiliser.
J'ai cette routine déjà créée dans la bibliotheque d'affichage que je vais utiliser :

Code :
  1. void Lcd_Decimal(char ValSend)
  2. {
  3. char val=0;       // Affichage de la valeur en Decimal
  4. while ( ValSend >100)
  5. {
  6.  valsend = valsend -100;
  7.  val++;
  8. }
  9. Lcd_Char(0x30+val);
  10. val=0;
  11. while(ValSend >10)
  12. {
  13.  Valsend= valsend -10;
  14.  val++;
  15. }
  16. Lcd_Char(0x30+val);
  17. Lcd_Char(0x30+ValSend);
  18. }


Je vais donc utiliser un integer codé sur 32 bit affin de stocker ma variable à afficher, au lieu d'utiliser un float du type XXX,YYY, j'aurais un integer du type XXXYYY (ma précédente variable x1000), et en reprenant le code plus haut, j'intégrerai ma virgule lors de l'affichage sur le LCD, entre l'affichage des 10 milliers et des milliers, puisque le code affiche les chiffres les uns après les autres.
 
à Bientot.
Mdog

n°7828
bilbot
L'Isarien des Flandres
Posté le 11-02-2008 à 23:09:53  profilanswer
 

Je suis pas spécialiste, mais t'es pas bligé d'utiliser 32 bits il me semble ? Avec 20 t'en as largement assez non ?


---------------
www.jackypc.com
Be creative with your style !
n°7829
mdog
Posté le 12-02-2008 à 00:11:27  profilanswer
 

Heu oui effectivement tu as raison, 24 bits suffirons, je sais pas pourquoi j'étais partis sur 32... Ha j'ai oublié de préciser une chose quand même dans mon explication, afin de gérer le signe de mon int, en début de la routine d'affichage il faut tester le signe, si négatif on affiche le caractère correspondant et on rend l'opposé de la variable pour la suite des opérations (on procède par soustractions successives donc il faut impérativement une variable positive).
 
Merci de la réponse ;)
@+
Mdog

mood
Google
Posté le 12-02-2008 à 00:11:27  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  Affichage de variables décimale sur pic, en C

 

Hit Parade