begin process at 2012 05 30 10:20:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

transfert de données avec un micro contrôleur PIC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

transfert de données avec un micro contrôleur PIC

vendredi 23 mai 2003 à 19:21:25 | transfert de données avec un micro contrôleur PIC

Tooshort23

Bonjour,

je me demande comment stocker des bits dans un octet qui arrivent en série ...

Il s'agit d'une lecture de carte à puce.
Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.

faut-il utiliser une variable "char"?
ou bien une variable définit:
#define nom_variable 0b00000000

Merci de me répondre.

vendredi 23 mai 2003 à 19:49:02 | Re : transfert de données avec un micro contrôleur PIC

BruNews

Administrateur CodeS-SourceS
dans quoi ils sont tes bits, tu as leur nombre, etc...
octet = var;
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Bonjour,
>
> je me demande comment stocker des bits dans un octet qui arrivent en série ...
>
> Il s'agit d'une lecture de carte à puce.
> Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
>
> faut-il utiliser une variable "char"?
> ou bien une variable définit:
> #define nom_variable 0b00000000
>
> Merci de me répondre.
>
>
samedi 24 mai 2003 à 10:52:44 | Re : transfert de données avec un micro contrôleur PIC

Tooshort23


mes bits sont dans une carte à puce....
le bit de donnée à transmettre au "pic" est sur le port C.
A chaque coup d'horloge, je lis ce bit en masquant le port C.
Ensuite je ne sais pas où et comment le stocker...
Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.

Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...

Merci pour ton aide...
Ciao



-------------------------------
Réponse au message :
-------------------------------

> dans quoi ils sont tes bits, tu as leur nombre, etc...
> octet = var;
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour,
> >
> > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> >
> > Il s'agit d'une lecture de carte à puce.
> > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> >
> > faut-il utiliser une variable "char"?
> > ou bien une variable définit:
> > #define nom_variable 0b00000000
> >
> > Merci de me répondre.
> >
> >
>
samedi 24 mai 2003 à 11:11:44 | Re : transfert de données avec un micro contrôleur PIC

BruNews

Administrateur CodeS-SourceS
faut d'abord definir ce que tu dois faire quand recption finie de tes 8 octets pour savoir la meilleure methode pour y acceder facilement.
unsigned char carte[8];
unsigned char puce;
int i = 0;
quand reception:
carte[i++] = octet;
if(i == 8) ne plus recevoir.
y a un decalage de bits sur octet ?
alors serait par exemple:
carte[i++] = octet >> 7; // si HIBIT
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

>
> mes bits sont dans une carte à puce....
> le bit de donnée à transmettre au "pic" est sur le port C.
> A chaque coup d'horloge, je lis ce bit en masquant le port C.
> Ensuite je ne sais pas où et comment le stocker...
> Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.
>
> Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...
>
> Merci pour ton aide...
> Ciao
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > dans quoi ils sont tes bits, tu as leur nombre, etc...
> > octet = var;
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bonjour,
> > >
> > > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> > >
> > > Il s'agit d'une lecture de carte à puce.
> > > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> > >
> > > faut-il utiliser une variable "char"?
> > > ou bien une variable définit:
> > > #define nom_variable 0b00000000
> > >
> > > Merci de me répondre.
> > >
> > >
> >
>
samedi 24 mai 2003 à 11:20:45 | Re : transfert de données avec un micro contrôleur PIC

Tooshort23


salut Brunews,

je sais comment ranger mes 8 octets mais le problème est que je n'arrive pas à ranger les bits un à un dans une variable. C'est le principe de la liaison série, sauf que c'est moi qui fait le protocole, tu vois ce que je veux dire???

Merci...


-------------------------------
Réponse au message :
-------------------------------

> faut d'abord definir ce que tu dois faire quand recption finie de tes 8 octets pour savoir la meilleure methode pour y acceder facilement.
> unsigned char carte[8];
> unsigned char puce;
> int i = 0;
> quand reception:
> carte[i++] = octet;
> if(i == 8) ne plus recevoir.
> y a un decalage de bits sur octet ?
> alors serait par exemple:
> carte[i++] = octet >> 7; // si HIBIT
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > mes bits sont dans une carte à puce....
> > le bit de donnée à transmettre au "pic" est sur le port C.
> > A chaque coup d'horloge, je lis ce bit en masquant le port C.
> > Ensuite je ne sais pas où et comment le stocker...
> > Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.
> >
> > Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...
> >
> > Merci pour ton aide...
> > Ciao
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > dans quoi ils sont tes bits, tu as leur nombre, etc...
> > > octet = var;
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bonjour,
> > > >
> > > > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> > > >
> > > > Il s'agit d'une lecture de carte à puce.
> > > > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> > > >
> > > > faut-il utiliser une variable "char"?
> > > > ou bien une variable définit:
> > > > #define nom_variable 0b00000000
> > > >
> > > > Merci de me répondre.
> > > >
> > > >
> > >
> >
>
samedi 24 mai 2003 à 11:37:08 | Re : transfert de données avec un micro contrôleur PIC

BruNews

Administrateur CodeS-SourceS
donne moi des noms et types de variables, src et dest et ce que tu veux exactement comme rangement.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

>
> salut Brunews,
>
> je sais comment ranger mes 8 octets mais le problème est que je n'arrive pas à ranger les bits un à un dans une variable. C'est le principe de la liaison série, sauf que c'est moi qui fait le protocole, tu vois ce que je veux dire???
>
> Merci...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > faut d'abord definir ce que tu dois faire quand recption finie de tes 8 octets pour savoir la meilleure methode pour y acceder facilement.
> > unsigned char carte[8];
> > unsigned char puce;
> > int i = 0;
> > quand reception:
> > carte[i++] = octet;
> > if(i == 8) ne plus recevoir.
> > y a un decalage de bits sur octet ?
> > alors serait par exemple:
> > carte[i++] = octet >> 7; // si HIBIT
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > mes bits sont dans une carte à puce....
> > > le bit de donnée à transmettre au "pic" est sur le port C.
> > > A chaque coup d'horloge, je lis ce bit en masquant le port C.
> > > Ensuite je ne sais pas où et comment le stocker...
> > > Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.
> > >
> > > Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...
> > >
> > > Merci pour ton aide...
> > > Ciao
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > dans quoi ils sont tes bits, tu as leur nombre, etc...
> > > > octet = var;
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Bonjour,
> > > > >
> > > > > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> > > > >
> > > > > Il s'agit d'une lecture de carte à puce.
> > > > > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> > > > >
> > > > > faut-il utiliser une variable "char"?
> > > > > ou bien une variable définit:
> > > > > #define nom_variable 0b00000000
> > > > >
> > > > > Merci de me répondre.
> > > > >
> > > > >
> > > >
> > >
> >
>
samedi 24 mai 2003 à 11:47:38 | Re : transfert de données avec un micro contrôleur PIC

Tooshort23


Bon voilà:

/* Au premier coup d'horloge, je récupère le premier bit */
horloge = front_descendant (port_b= 0x01, par exemple)

port_C = port_C && 0x10 // masquage du bit de donnée

/* Maintenant je veux ranger le bit de donnée dans une variable codé sur 8 bits (comme une char). */
???

/* Au deuxième coup d'horloge, je récupère un deuxième bit et le range dans la même variable, avec un décalage pour le mettre à la bonne place */

Ciao....



-------------------------------
Réponse au message :
-------------------------------

> donne moi des noms et types de variables, src et dest et ce que tu veux exactement comme rangement.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > salut Brunews,
> >
> > je sais comment ranger mes 8 octets mais le problème est que je n'arrive pas à ranger les bits un à un dans une variable. C'est le principe de la liaison série, sauf que c'est moi qui fait le protocole, tu vois ce que je veux dire???
> >
> > Merci...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > faut d'abord definir ce que tu dois faire quand recption finie de tes 8 octets pour savoir la meilleure methode pour y acceder facilement.
> > > unsigned char carte[8];
> > > unsigned char puce;
> > > int i = 0;
> > > quand reception:
> > > carte[i++] = octet;
> > > if(i == 8) ne plus recevoir.
> > > y a un decalage de bits sur octet ?
> > > alors serait par exemple:
> > > carte[i++] = octet >> 7; // si HIBIT
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > mes bits sont dans une carte à puce....
> > > > le bit de donnée à transmettre au "pic" est sur le port C.
> > > > A chaque coup d'horloge, je lis ce bit en masquant le port C.
> > > > Ensuite je ne sais pas où et comment le stocker...
> > > > Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.
> > > >
> > > > Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...
> > > >
> > > > Merci pour ton aide...
> > > > Ciao
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > dans quoi ils sont tes bits, tu as leur nombre, etc...
> > > > > octet = var;
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Bonjour,
> > > > > >
> > > > > > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> > > > > >
> > > > > > Il s'agit d'une lecture de carte à puce.
> > > > > > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> > > > > >
> > > > > > faut-il utiliser une variable "char"?
> > > > > > ou bien une variable définit:
> > > > > > #define nom_variable 0b00000000
> > > > > >
> > > > > > Merci de me répondre.
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
samedi 24 mai 2003 à 11:56:46 | Re : transfert de données avec un micro contrôleur PIC

BruNews

Administrateur CodeS-SourceS
char carte; // donnees finales
int i = 8;
while(i) {
carte <<= 1;
carte |= (port_C & 1); // si bit bas de port_C
i--;
}
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

>
> Bon voilà:
>
> /* Au premier coup d'horloge, je récupère le premier bit */
> horloge = front_descendant (port_b= 0x01, par exemple)
>
> port_C = port_C && 0x10 // masquage du bit de donnée
>
> /* Maintenant je veux ranger le bit de donnée dans une variable codé sur 8 bits (comme une char). */
> ???
>
> /* Au deuxième coup d'horloge, je récupère un deuxième bit et le range dans la même variable, avec un décalage pour le mettre à la bonne place */
>
> Ciao....
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > donne moi des noms et types de variables, src et dest et ce que tu veux exactement comme rangement.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > salut Brunews,
> > >
> > > je sais comment ranger mes 8 octets mais le problème est que je n'arrive pas à ranger les bits un à un dans une variable. C'est le principe de la liaison série, sauf que c'est moi qui fait le protocole, tu vois ce que je veux dire???
> > >
> > > Merci...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > faut d'abord definir ce que tu dois faire quand recption finie de tes 8 octets pour savoir la meilleure methode pour y acceder facilement.
> > > > unsigned char carte[8];
> > > > unsigned char puce;
> > > > int i = 0;
> > > > quand reception:
> > > > carte[i++] = octet;
> > > > if(i == 8) ne plus recevoir.
> > > > y a un decalage de bits sur octet ?
> > > > alors serait par exemple:
> > > > carte[i++] = octet >> 7; // si HIBIT
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > >
> > > > > mes bits sont dans une carte à puce....
> > > > > le bit de donnée à transmettre au "pic" est sur le port C.
> > > > > A chaque coup d'horloge, je lis ce bit en masquant le port C.
> > > > > Ensuite je ne sais pas où et comment le stocker...
> > > > > Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.
> > > > >
> > > > > Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...
> > > > >
> > > > > Merci pour ton aide...
> > > > > Ciao
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > dans quoi ils sont tes bits, tu as leur nombre, etc...
> > > > > > octet = var;
> > > > > > BruNews, ciao...
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Bonjour,
> > > > > > >
> > > > > > > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> > > > > > >
> > > > > > > Il s'agit d'une lecture de carte à puce.
> > > > > > > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> > > > > > >
> > > > > > > faut-il utiliser une variable "char"?
> > > > > > > ou bien une variable définit:
> > > > > > > #define nom_variable 0b00000000
> > > > > > >
> > > > > > > Merci de me répondre.
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
lundi 26 mai 2003 à 11:20:37 | merci pour ta réponse

Tooshort23


merci Brunews,

je suis satisfaiot de ta réponse. Tu m'as bien éclairé...

A plus...
Bon courage


-------------------------------
Réponse au message :
-------------------------------

> char carte; // donnees finales
> int i = 8;
> while(i) {
> carte <<= 1;
> carte |= (port_C & 1); // si bit bas de port_C
> i--;
> }
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Bon voilà:
> >
> > /* Au premier coup d'horloge, je récupère le premier bit */
> > horloge = front_descendant (port_b= 0x01, par exemple)
> >
> > port_C = port_C && 0x10 // masquage du bit de donnée
> >
> > /* Maintenant je veux ranger le bit de donnée dans une variable codé sur 8 bits (comme une char). */
> > ???
> >
> > /* Au deuxième coup d'horloge, je récupère un deuxième bit et le range dans la même variable, avec un décalage pour le mettre à la bonne place */
> >
> > Ciao....
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > donne moi des noms et types de variables, src et dest et ce que tu veux exactement comme rangement.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > salut Brunews,
> > > >
> > > > je sais comment ranger mes 8 octets mais le problème est que je n'arrive pas à ranger les bits un à un dans une variable. C'est le principe de la liaison série, sauf que c'est moi qui fait le protocole, tu vois ce que je veux dire???
> > > >
> > > > Merci...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > faut d'abord definir ce que tu dois faire quand recption finie de tes 8 octets pour savoir la meilleure methode pour y acceder facilement.
> > > > > unsigned char carte[8];
> > > > > unsigned char puce;
> > > > > int i = 0;
> > > > > quand reception:
> > > > > carte[i++] = octet;
> > > > > if(i == 8) ne plus recevoir.
> > > > > y a un decalage de bits sur octet ?
> > > > > alors serait par exemple:
> > > > > carte[i++] = octet >> 7; // si HIBIT
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > >
> > > > > > mes bits sont dans une carte à puce....
> > > > > > le bit de donnée à transmettre au "pic" est sur le port C.
> > > > > > A chaque coup d'horloge, je lis ce bit en masquant le port C.
> > > > > > Ensuite je ne sais pas où et comment le stocker...
> > > > > > Au total, il y a 64 bits à transmettre. Je souhaite ranger les 8 octets dans un tableau de 8.
> > > > > >
> > > > > > Il faut décaler le bit à chaque fois pour le remettre à la bonne place, c'est tout ce que je sais...
> > > > > >
> > > > > > Merci pour ton aide...
> > > > > > Ciao
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > dans quoi ils sont tes bits, tu as leur nombre, etc...
> > > > > > > octet = var;
> > > > > > > BruNews, ciao...
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Bonjour,
> > > > > > > >
> > > > > > > > je me demande comment stocker des bits dans un octet qui arrivent en série ...
> > > > > > > >
> > > > > > > > Il s'agit d'une lecture de carte à puce.
> > > > > > > > Les bits sont transmis un à un mais je n'arrive pas à les ranger correctement.
> > > > > > > >
> > > > > > > > faut-il utiliser une variable "char"?
> > > > > > > > ou bien une variable définit:
> > > > > > > > #define nom_variable 0b00000000
> > > > > > > >
> > > > > > > > Merci de me répondre.
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Cette discussion est classée dans : variable, données, transfert, micro, contrôleur


Répondre à ce message

Sujets en rapport avec ce message

Extraction de données dans un char[260] [ par seb2086 ] Bonjour,char variable[260] = "C:\Mes docs\Dossier\Objet.X" ;Voila en fait je voudrais récupérer dans une autre variable seulement Objet.X.En gros il f Conversion de types de données... [ par nullspace ] J'ai jamais réussis à trouver une bonne solution pour convertir un type de variable dans une autre variable ayant un autre type.Par exemple...si j'ai [BAR]Transfert de données EXCEL vers le web ... [ par nicomk1 ] Bonjour à tous , je recherche désespérement le moyen de pouvoir remplir une ou plusieurs cases sur le web avec comme source quelques données d'un tabl [µcontrolleur Microchip] - Stoquage de données series dans une variable [ par ClacMer2 ] Bonjour,Voila mon problème, je suis actuellement en train de me pencher sur la liaison rs232, liaison série, et les données y sont envoyées à l'envers transfert de données vers un fichier [ par nonkouni ] j'ai créé une connexion vers ne base de données access.et cela en VC++ avec MFCqq'un peut t-il m'aider à envoyer ces données vers un fichier texte. Problème de "tampon" [ par speeddo ] Bonjour,je stock dans une variable de type Variant des données venant d'un autre logiciel. Ces données sont mis dans la dite variable grace à une fonc Rediriger des données venant du port série sur l'entrée clavier.... [ par lecods ] Bonjour,voila mon problème.Lorsqu'on connecte un périphérique comme un lecteur de code à barre sur l'entrée clavier, lorsqu'on lit un code à barre, le Lecture base données [ par goutbouyo ] Salut,Je cherche à lire une valeur dans la base de données mais je n'y arrive pas ...Pouvez vous me dire ce qui ne va pas dans ce morceau de code SVP CALLBACK dans une Classe => problême mot clef static ! [ par Capa6T ] Salut, Une petite question à 2 euros...je cherche depuis un moment et je ne trouve pas la solution. j'ai une classe bidon:// Bidon.hclass Bidon{public


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales