[C] Masquer de octets

Masquer de octets [C] - C - Programmation

Marsh Posté le 25-04-2007 à 16:18:50    

Bonjours tous le monde!
 
Voila j'ai un petit probleme....
 
En effet, dans le cadre de mon projet de fin d'année je dois realiser un programme pour un PIC 16F876
 
Explication ==> J'ai 2 carte differentes, toutes les 2 possede un module SPM2 de chez radiometrix ainsi que d'un PIC.
                      Quelque fois La carte 1 envoie une trame semblable a celle ci à la carte 2 :
 
                                         0xFF 0x06 0xA2 0x3F 0x45 0xA3
 
                     Mais la carte 2 n'as besoin que de lire le 3eme byte (cad A2).....
     
Question ==> Alors comment fait on pour realiser un masque pour qu'il ne prenne en compte que le A2?
 
Merci

Message cité 1 fois
Message édité par Neo_007 le 25-04-2007 à 16:19:20
Reply

Marsh Posté le 25-04-2007 à 16:18:50   

Reply

Marsh Posté le 25-04-2007 à 16:44:27    

en quel langage ?
 
en ASM x86, tu dois pouvoir faire un "reg AND 0xFFFF00FFFFFF" <- sauf que là je trouve qu'il est bien gros ton registre... 48 bits :??:


Message édité par MagicBuzz le 25-04-2007 à 16:45:26
Reply

Marsh Posté le 25-04-2007 à 17:32:40    

Oups excusez moi c'est du C et je le compile avec CCS sous MPLAB.

Citation :

sauf que là je trouve qu'il est bien gros ton registre... 48 bits :??:


 
Et pourtant elle peuvent etre bien plus longue......

Reply

Marsh Posté le 25-04-2007 à 17:37:44    

c'est pas un masque qu'il te faut pour ça, c'est acquerir tes mots, et ne choisir que celui qui t'interesse


---------------
Töp of the plöp
Reply

Marsh Posté le 25-04-2007 à 18:48:07    

d'accord donc je fais un fgets(), mais ensuite comment est ce que je le choisi?
Parce que le Troisieme byte peut varier selon les cas....

Reply

Marsh Posté le 25-04-2007 à 19:05:17    

Neo_007 a écrit :

Quelque fois La carte 1 envoie une trame semblable a celle ci à la carte 2 :
 
                                         0xFF 0x06 0xA2 0x3F 0x45 0xA3
 
                     Mais la carte 2 n'as besoin que de lire le 3eme byte (cad A2).....
     
Question ==> Alors comment fait on pour realiser un masque pour qu'il ne prenne en compte que le A2?


C'est pas un masque qu'il faut. C'est un séquenceur. Tu traites le 3 ème byte et tu ignores les autres (mais il fait les lire quand même avec fgetc()).
 
A toi de gérer ton compteur correctement...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 25-04-2007 à 19:32:34    

d'accord merci beaucoup!

Reply

Marsh Posté le 25-04-2007 à 20:17:05    

en gros d'un point de vue algorythme :
 
int i = 0;
unsigned char c;
c = getc(trame1, c);
while (c != 0x00)
{
   if (++i != 3) putc(trame2, c);
   c = getc(trame1, c)
}

Reply

Marsh Posté le 25-04-2007 à 22:57:07    

cool merci beaucoup

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed