Tableau de bit et d'octet(Programmation PIC)
zozizon
Messages postés
674
Date d'inscription
Statut
Membre
Dernière intervention
-
amlne Guedd ETT -
amlne Guedd ETT -
Bonjour à tous.
Je travaille sur un afficheur LCD 64x128 commandé par un PIC16F877.
Je cherche à remplir un tableau de 64bits avec des 1 placés a la position 0-63 dans mon tableau afin de placer les pixels sur la ligne voulue.
Mais je voudrai aussi que ce même tableau soit un tableau de 8 octets afin d'afficher ces pixel page par page.
Union serrait peut être la solution mais je ne vois pas comment procéder.
Pour le moment voila ce que j'utilise
unsigned char ColLCD[8]=0;
LigneLCD=MesureAN0>>2; //passe de 256 à 64
Page=0;
while (LigneLCD>8)
{
LigneLCD=LigneLCD-8;
Page++;
}
LignePage=1;
while (LigneLCD!=0)
{
LignePage=LignePage<<1;
}
ColLCD[Page]=ColLCD[Page]|LignePage;
Dans mon cas je voudrais pouvoir écrire ColLCD[NuméroBit]=1 mais aussi que ColLCD[NuméroOctet] soit possible et pointe sur le même tableau.
Le nom ColLCD n'est pas important. par contre "bit toto0[64]" et "octet toto1[8]" doivent utiliser la même adresse mémoire.
Je pense que ce n'est pas possible du fait qu'il est impossible de pointer sur un Bit mais je demande à tout hasard.
Merci de votre aide
Je travaille sur un afficheur LCD 64x128 commandé par un PIC16F877.
Je cherche à remplir un tableau de 64bits avec des 1 placés a la position 0-63 dans mon tableau afin de placer les pixels sur la ligne voulue.
Mais je voudrai aussi que ce même tableau soit un tableau de 8 octets afin d'afficher ces pixel page par page.
Union serrait peut être la solution mais je ne vois pas comment procéder.
Pour le moment voila ce que j'utilise
unsigned char ColLCD[8]=0;
LigneLCD=MesureAN0>>2; //passe de 256 à 64
Page=0;
while (LigneLCD>8)
{
LigneLCD=LigneLCD-8;
Page++;
}
LignePage=1;
while (LigneLCD!=0)
{
LignePage=LignePage<<1;
}
ColLCD[Page]=ColLCD[Page]|LignePage;
Dans mon cas je voudrais pouvoir écrire ColLCD[NuméroBit]=1 mais aussi que ColLCD[NuméroOctet] soit possible et pointe sur le même tableau.
Le nom ColLCD n'est pas important. par contre "bit toto0[64]" et "octet toto1[8]" doivent utiliser la même adresse mémoire.
Je pense que ce n'est pas possible du fait qu'il est impossible de pointer sur un Bit mais je demande à tout hasard.
Merci de votre aide
A voir également:
- Tableau octet
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
3 réponses
Re.
En fait c'est un tableau ou l'on pourrait accéder bit a bit par exemple tab[63]=1 soit par octet tab[7]=0x08. Cela me permet par exemple d'afficher un signal coder sur 64 bits de manière simple :
tab[signal]=1
puis j'affiche le résultat en faisant une boucle pour écrire page par page :
while( i >=8 )
{
SelectionDeLaPage(i);//je sélectionne la page
Page=tab[i];// j'écrie l'octet dans cette page.
i++;//de même pour les page suivantes.
}
Merci de ton aide
En fait c'est un tableau ou l'on pourrait accéder bit a bit par exemple tab[63]=1 soit par octet tab[7]=0x08. Cela me permet par exemple d'afficher un signal coder sur 64 bits de manière simple :
tab[signal]=1
puis j'affiche le résultat en faisant une boucle pour écrire page par page :
while( i >=8 )
{
SelectionDeLaPage(i);//je sélectionne la page
Page=tab[i];// j'écrie l'octet dans cette page.
i++;//de même pour les page suivantes.
}
Merci de ton aide