begin process at 2012 05 30 12:13:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

struct


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

struct

lundi 8 novembre 2010 à 12:06:49 | struct

morbak01

BOnjour,

ss debutant et j'ai une petie question:

Je regroupe ds un struct plusierus état de led:
struct led
{
unsigned led1 : 1 ;
unsigned led2 : 1 ;
unsigned led3 : 1 ;
unsigned led4 : 1 ;
unsigned led5 : 1 ;
unsigned led6 : 1 ;
unsigned led7 : 1 ;
unsigned led8 : 1 ;
} led;

Les etat des leds sont mis a jour en fonction de certains evenements.

Maintenant je voudrais mettre ttes les leds à 0 et faire un truce genre:
led=0;

ou encore je vourdais tester régulierment si
led=0x55 et lancer une fonction à ce moment

Mais visiblement il n'est pas possible d'affecter une valeur directement à cette structure et encore moins de faire un test dessus ?

Comment faire?

merci,

lundi 8 novembre 2010 à 15:37:01 | Re : struct

DeAtHCrAsH

Salut,

En effet il est impossible d'accèder aux valeur des elements d'une structure seulement avec le nom de la structure.
La seule solution est que tu te fasses une fonction de vérification, ca devrait pas dépasser les 5 lignes de codes...

Pour ce qui est de la vérification périodique, tu as deux solutions:
- Utiliser un thread
- Utiliser un timer

Shell
lundi 8 novembre 2010 à 15:57:11 | Re : struct

morbak01

Pr le verif perio pas de soucis de ce coté là, mais c'est juste comment checké que:
led (la structure) est égale à 0x55 par exemple?
lundi 8 novembre 2010 à 16:09:31 | Re : struct

DeAtHCrAsH


C'est ce que je t'ai dis dans ma deuxieme phrase!

Tu te fais un petite fonction du genre :

Code C/C++ :
bool checkStatus(led l, int value)
{
  return (l.led1 == value && l.led2 == value && l.led3) // Tu fais ca pour toutes tes leds
}


Ensuite pour faire la vérification :

Code C/C++ :
led myLed;
// Tu mets les valeurs que tu veux dans myLed

bool ledStatus = checkStatus(myLed, 0x55);

if(ledStatus == true){
   // Toutes les leds ont la valeur 0x55
}


Shell
mardi 9 novembre 2010 à 09:17:24 | Re : struct

louis14

Bonjour

Si tu n'as que 8 Led tu peux utiliser un entier et gèrer les bits. Ainsi tu pourras faire ton test led == 0x55
Pour gérer les états des Leds tu utilises les opérations binaires.

louis
mardi 9 novembre 2010 à 09:46:23 | Re : struct

morbak01

BOnjour,

@louis: au risque de paraitre lourd tu peux eclairer plus ma lanterne stp

merci,
mardi 9 novembre 2010 à 16:58:58 | Re : struct

DeAtHCrAsH


Salut,

@Louis:
Un entier = 32 bits et non 8 bits!

@Morbak:
Pour reprendre l'idée de louis qui n'est pas mauvaise, l'idée est de remplacer ta structure par un byte !
1 byte = 8 bits.

Si tes led on seulement deux états 0 et 1 tu peux alors directement travailler sur un entier.

La représentation sera la suivante :
byte ledsState = 0x00; // Egal à 00000000, soit toutes les leds sont à 0
byte ledsState = 0xFF; // Egal à 11111111, soit toutes les leds sont à 1
byte ledsState = 0x55; // Egal à 01010101, soit une led sur deux est à 1
Etc...

Tu vois donc que tu peux facilement

Shell


Cette discussion est classée dans : fonction, led, unsigned, struct, leds


Répondre à ce message

Sujets en rapport avec ce message

Passer un tableau en parametre d'une fonction [ par julien20vt ] Voila mon probleme:J'ai déclaré une structure Nom_Struct, j'initialise un tableau de Nom_Struct :Nom_Struct maStruct[1000] Ensuite j'ai la fonction s Faire clignoter les LEDS du clavier [ par cyberlewis ] Salut à tous,Voilà j'aimerais faire un prog avec ça svp,- Faire clignoter les LEDS du clavier (à fréquence choisie)- Qui marche ss Win95/98/98SE/ME/NT pb de progr [ par airwann ] bonjour,j ai un pb ds mon code (je ne suis pas un expert) mais là je ne vois pas ou ça plante ..////////////////////////////////////////////////////// pb de retour( du tableau) de ma fonction [ par airwann ] bonjour,j ai un problème comment dois je modifier l'entête de ma fonction pour recupérer le tableau de structure 3 d alloué dynamiquementmerci d avanc Pb CreateThreadddd !!!!!!!!!!! [ par neub ] Salut à tous, j'ecris un module de visionnement d'image etje souhaiterai pouvoir stopper ma fonction OnPlay au moment voulu mais j'ai un pb a la creat struct [ par ready4 ] Je ne sais pas comment initialiser mes moteurs //intialisation moteursM1 = {2, 1, 1, 2, 0, 0, 120};M2 = {8, 4, 4, 8, 0, 0, 80};M3 = {32, 16, 16, 32, 0 Pointeurs et Desallocation [ par gilimcce ] Bonjour à tous....je declare une fonctionloadJpegImage(char *, unsigned char*, int*, int*)1e parametre : le chemin de l'image chargee2e // Listes chainées !!!!! [ par flopflopp ] Bonjour je travaille tjrs sur mon éditeur de texte style vi et je voudrais vous soumettre un nouveau problème :En fait j'ai une structure ligne qui es Raw socket TCP/IP sous Windwos XP [ par MaximeH ] Bonjour à tous, J'aimerais savoir pourquoi ce code ne marche pas (il n'es pas de moi, c'est sensé être un exemple ...) : ###code // SheepTCP->SYN Ha tableau de struct et fonction en C [ par sim51 ] Bonjour à tous. J'ai un petit problème de syntax, après plusieurs recherche sur le net, je n'ai pu ni affirmer ou ni infirmer la validation de mon cod


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 : 1,248 sec (3)

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