Aide pour programmation d'un PIC (Hexa => D)
TheFullMetal
-
TheFullMetal -
TheFullMetal -
Bonjour,
Alors voila j'ai le probleme suivant:
Pour un exercice je doit afficher la tension que me fournie une source sur un afficheur LCD 2*16. Pour cela je dispose d'un pic 16F8777.
On ma donc donné le programme suivant:
Ce n'est pas moi qui l'ai réalisé n'ayant pas de connaissance en programmation de micro-contrôleur.
Néanmoins, je sais qu'il fonctionne suivant se principe :
-Si ma source est à 0V sur mon afficheur j'aurais 00
-Si ma source est à 5V sur mon afficheur j'aurais FF (je ne dois pas dépasser les 5Volts)
Donc par exemple: si ma source est à 2.5V sur mon afficheur j'aurais 7F .....
Mais le problème est que je ne veux pas que mon afficheur m'affiche 7F mais 2.5V.
Je voudrais donc modifier mon programme pour que celui-ci convertisse ma variable V en décimale puis je n'aurais plus que la multiplier par 5/255 pour avoir ma valeur en Volt.
Seulement je ne vois pas comment convertir V de l'hexadécimale vers le décimale.
Alors, si quelqu'un veut bien me guider je lui en serais reconnaissant.
Alors voila j'ai le probleme suivant:
Pour un exercice je doit afficher la tension que me fournie une source sur un afficheur LCD 2*16. Pour cela je dispose d'un pic 16F8777.
On ma donc donné le programme suivant:
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#include <lcd.c>
void main() {
int i;
long value, V;
lcd_init();
setup_port_a( ALL_ANALOG );
setup_adc( ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
do {
V=0xffff;
for(i=0; i<=30; ++i) {
delay_ms(100);
value = Read_ADC();
V=value;
}
printf(LCD_PUTC,"\n\r V: %4LX ",V);
} while (TRUE);
}
Ce n'est pas moi qui l'ai réalisé n'ayant pas de connaissance en programmation de micro-contrôleur.
Néanmoins, je sais qu'il fonctionne suivant se principe :
-Si ma source est à 0V sur mon afficheur j'aurais 00
-Si ma source est à 5V sur mon afficheur j'aurais FF (je ne dois pas dépasser les 5Volts)
Donc par exemple: si ma source est à 2.5V sur mon afficheur j'aurais 7F .....
Mais le problème est que je ne veux pas que mon afficheur m'affiche 7F mais 2.5V.
Je voudrais donc modifier mon programme pour que celui-ci convertisse ma variable V en décimale puis je n'aurais plus que la multiplier par 5/255 pour avoir ma valeur en Volt.
Seulement je ne vois pas comment convertir V de l'hexadécimale vers le décimale.
Alors, si quelqu'un veut bien me guider je lui en serais reconnaissant.
A voir également:
- Aide pour programmation d'un PIC (Hexa => D)
- Pic hunter - Télécharger - Téléchargement & Transfert
- Editeur hexa - Télécharger - Édition & Programmation
- Pic collage gratuit - Télécharger - Photo & Graphisme
- Logiciel de programmation pour débutant - Guide
- Entrée dans le réseau des pic ✓ - Forum Consommation & Internet
3 réponses
Heu je connais pas trop le C sur PIC, mais comme tu possède 'printf', le compilateur doit sûrement comprendre quelque chose du genre:
printf(LCD_PUTC,"\n\r V: %2.2LF",(float)V*5/255);J'ai mis LF car tu avais mis LD, c'est peut-être autre chose, vois dans ta doc.
Merci pour ta réponse loupious, donc lorsque tu met:
V sera en Décimale c'est bien sa?
Si V est en décimale lorsque que je la déclare je peux laisser
V: %2.2LF"
V sera en Décimale c'est bien sa?
Si V est en décimale lorsque que je la déclare je peux laisser
long value, V
Heu, j'ai été méfiant; je n'ai pas dit que c'était la solution.
Pourquoi? Tout simplement parce que le compilateur pour le PIC n'est pas aussi complet (du moins ceux que, jusqu'ici, j'ai utilisé) que celui pour PC. J'ai donc suggéré une solution et t'ai demandé de t'en assurer dans la doc.
Désolé de rester aussi vague.
Pourquoi? Tout simplement parce que le compilateur pour le PIC n'est pas aussi complet (du moins ceux que, jusqu'ici, j'ai utilisé) que celui pour PC. J'ai donc suggéré une solution et t'ai demandé de t'en assurer dans la doc.
Désolé de rester aussi vague.