begin process at 2012 05 27 16:41:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > GESTION D'UN TABLEAU AVEC POINTEURS.

GESTION D'UN TABLEAU AVEC POINTEURS.


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :20/12/2004 Date de mise à jour :25/05/2005 11:52:24 Vu :4 203

Auteur : virtuA

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Cette source montre la gestion d'un Tableau avec des Pointeurs dans le Cas d'un Buffer de Réception USART.

Source

  • Auteur : VirtuA
  • unsigned char TabBuffer[103]; //Tableau Buffer USART.
  • unsigned char longueurMess; //Longueur du message.
  • unsigned char RECEPTION; // petit buffer Reception.
  • unsigned char *PtrTabB = &TabBuffer[0]; //Pointeur init à l'origine du tableau Buffer.
  • unsigned char *PtrTabBMax = &TabBuffer[103];
  • void Aquisition (void)
  • {
  • if (longueurMess==1)
  • {
  • PtrTabB++; //Incremente le pointeur qui contient l'adresse.
  • *PtrTabB=RECEPTION; //Le char pointé par PtrTab prend la valeur de RECEPTION.
  • if (PtrTabB == PtrTabBMax)//égalité des 2 pointeurs?
  • {
  • PtrTabB=&TabBuffer[0]; //reinti le pointeur Buffer.
  • longueurMess=0; //baisse le flag.
  • Identifiant();
  • }
  • }
  • else
  • {PtrTabB=&TabBuffer[0];
  • PtrTabBMax = RECEPTION + &TabBuffer[0]; //init de la valeur du pointeur Max.
  • *PtrTabB=RECEPTION;
  • longueurMess=1; //met le flag à 1!
  • }
  • }
  • void Identifiant (void) //Routine => Identifiant.
  • {
  • if (TabBufferPC[1]==0x01) //COMMANDE XX
  • {
  • }
  • if (TabBufferPC[1]==0x02) //COMMANDE YY
  • {
  • }
  • // Mettre l'identification des Fonctions selon les TRames Reçu.
  • }
Auteur : VirtuA

unsigned char TabBuffer[103];  		//Tableau Buffer USART.
unsigned char longueurMess;		//Longueur du message.
unsigned char RECEPTION;		// petit buffer Reception.
unsigned char *PtrTabB = &TabBuffer[0];	//Pointeur init à l'origine du tableau Buffer.
unsigned char *PtrTabBMax = &TabBuffer[103];

void Aquisition (void)				
{				
if (longueurMess==1)
	{	
	PtrTabB++;		//Incremente le pointeur qui contient l'adresse.
	*PtrTabB=RECEPTION;	//Le char pointé par PtrTab prend la valeur de RECEPTION.

	if (PtrTabB == PtrTabBMax)//égalité des 2 pointeurs?
		{
		PtrTabB=&TabBuffer[0];	//reinti le pointeur Buffer.
		longueurMess=0;		//baisse le flag.
		Identifiant();
		}
	}
       else 
        {PtrTabB=&TabBuffer[0];
	PtrTabBMax = RECEPTION + &TabBuffer[0];	//init de la valeur du pointeur Max.	
	*PtrTabB=RECEPTION;
	longueurMess=1;				//met le flag à 1!
		}																
}


void Identifiant (void)		//Routine => Identifiant.
{
 if (TabBufferPC[1]==0x01)		//COMMANDE XX
	{
	}
if (TabBufferPC[1]==0x02)		//COMMANDE YY
	{
	}	
// Mettre l'identification des Fonctions selon les TRames Reçu.
}


 Conclusion

FORMAT de la trame Reçu:

<Otect Longueur TRame> <Identifiant Fonction> <Valeur de fonction>.

On peut par exemple imaginer 2 LED avec pour identifiant 0x01 pour la 1er et 0x02 pour la 2eme.
avec la valeur 0x00 pour Eteindre et 0x01 pour allumer.
donc:

<0x02><0x01><0x01> // Ceci allume la LED 1
<0x02><0x02><0x00> // Ceci éteind la LED 2

PS: c'est un protocole très basic sans contrôle mais il permet de se familiariser avec la gestion des pointeurs lors du traitement des la réception comme le montre ma source ci-dessus


 Historique

20 décembre 2004 11:30:54 :
20 décembre 2004 11:34:36 :
25 mai 2005 11:52:24 :
Ajout de la description de la source.

 Sources du même auteur

CRC 16

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




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,593 sec (4)

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