comment envoyer un mot de 32bit avec un pic sur un port série rs232(qui lui peut faire que du 8bit
-----
comment envoyer un mot de 32bit avec un pic sur un port série rs232(qui lui peut faire que du 8bit
Salut,
Je ne comprends pas trés bien ta question : envoyer un mot de 32 bits par port série via un PIC
Premières questions : D'ou proviennent ces 32 bits ? tu pourrais les "découper" en 4x8bits
Quel type de PIC utilises-tu ? Compatible RS232 ?
En effet, tu veux utiliser le protocole RS232 ? Ce dernier n'utilse que 1 octet (8 bits) de données.
Si tu veux maintenant utiliser librement ton port série, tu peux envoyer les 8 premiers bits, puis 8 autres et ainsi de suite ...
J'avoue que la question est un peu vague !
a+
L'éxpérience de chacun est le trésor de tous
bonjour,
En fait ta question ne peut avoir de reponse que si on connait comment , sous quelle forme tu veux les recuperer à l'autre bout ?
coté PC ?
puisque c'est bien le PIC qui envoie une donnée sur 32 bits ?
cette donnéee peut etre
binaire pur 00000000 à FFFFFFFF donc 4 octets successivement envoyés..
ou codée en ascci BCD sur 10 digits donc 10 caracteres
ou est-ce du flottant ?
j'ai une variable float m qui est le résultat d'une multiplication d'un long avec un float donc j'ai bien du flottant je n'arrive pas à configurer mon pic 18f1220 qui est compatible avec les rs232.je veux l'envoyer au pc et retrouver cette varible m exactement pareil sur mon pc.aidez moi!!!!!bonjour,
En fait ta question ne peut avoir de reponse que si on connait comment , sous quelle forme tu veux les recuperer à l'autre bout ?
coté PC ?
puisque c'est bien le PIC qui envoie une donnée sur 32 bits ?
cette donnéee peut etre
binaire pur 00000000 à FFFFFFFF donc 4 octets successivement envoyés..
ou codée en ascci BCD sur 10 digits donc 10 caracteres
ou est-ce du flottant ?
voici le début du programme si cela peut vous aidez!!!!
#include <p18f2220.h>
#include <stdio.h>
unsigned long i;
unsigned int j;
unsigned int k;
float l;
float m;
/*programme principale*/
void main(void)
{
/*initialisation*/
OSCCON = OSCCON|0x76;
i=0;
j=0;
k=0;
l=0.000025;
m=0;
PORTB=0x00;
if(PORTB & 0x04 == 0x04);
{
do
{j=0;
if(PORTB&0x02==0x00)
{
i++;
j++;
}
else
{
j++;
k++;
if(k==400);
{
m=i*l;
/*programme d'envoie par port série à faire ici!!!!!*/
}
}
}
while(j<400);
}
}
/*arrêt d'urgence*/
void INTO_inter ()
{
if(PORTB&0x01==0x00);
OSCCON=OSCCON&0x7c;
}
Bonjour,
J'ai pas la réponse à ta question précise parce que même si j'ai suivi tout les post précédants sur le "système de gestion de peaux" ...je n'ai pas assez d'infos pour y répondre. Je me permettrai poutant quelques remarques :voici le début du programme si cela peut vous aidez!!!!
Code:#include <p18f2220.h> #include <stdio.h> unsigned long i; unsigned int j; unsigned int k; float l; float m; /*programme principale*/ void main(void) { /*initialisation*/ OSCCON = OSCCON|0x76; i=0; j=0; k=0; l=0.000025; m=0; PORTB=0x00; if(PORTB & 0x04 == 0x04); { do {j=0; if(PORTB&0x02==0x00) { i++; j++; } else { j++; k++; if(k==400); { m=i*l; /*programme d'envoie par port série à faire ici!!!!!*/ } } } while(j<400); } } /*arrêt d'urgence*/ void INTO_inter () { if(PORTB&0x01==0x00); OSCCON=OSCCON&0x7c; }
1°) i,j,k,l,m, etc .... c'est pas des nom de variables ça c'est du charabia ! y'a que toi qui sais ce que c'est : alors fait un effort pour leur donner un nom qui veux dire quelque chose ! Je l'ai même pas lu ton code je l'ai survolé c'est illisible sans commentaires et sans explications ! => bilan personne n'as de temps pour se casser la tête a lire ça !
Je suis sèvère pour un détail tu pense mais quand j'ai passé mon BTS les i,j,k et autres n'étaient que tolérées pour gérer des boucles ! Je présentais ça à un prof, il ne lisais même pas ma copie !
2°) je doute que ton debuggeur te dise que y'a erreur quand tu mes des ; après un test if(.....) mais y'en a dans ton programme je doute que se soit ce que tu veux faire .....
3°) mettre un commentaire /*Programme principale*/ pour un main() ça part d'une bonne intention mais évite les fautes d'orthographes ENORMES (une autre là : /*programme d'envoie par port série à faire ici!!!!!*/) et essaye plutôt de commenter les points importants ( main() on sait que c'est le programme principal ). Par contre i,j,k,l,m ...... (et oui j'insiste .....)Code:if(PORTB & 0x04 == 0x04); {..... ... if(k==400); { ...
J'ai suivi les posts où PA5CAL t'as largement aidé pour le capteur et le reste .... j'arrive pas à retrouver les infos dans ce code.
Et par pitié STRUCTURE ton code et commente le !!!! Tu code pas en C/C++ (Objets) pour rien sinon va faire de l'assembleur.
Cordialement.
Ce qui se conçoit clairement s’ennonce clairement