Debutant cherche comment fait opperation sur "float"
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017
-
28 sept. 2008 à 19:05
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017
-
1 oct. 2008 à 19:27
Bonjour a vous tous
On a un TP a faire au lycée pour simuler une guirlande de noël.
Un petit truc tout simple qui commande une boite avec 8 leds et il y a 8 entrées
Les leds sont commander avec des variables unsigned float de 0x01 à 0xff
J'ai fait mon 1er programme tout simple en boucle "while" qui incrémente la variable de 1 et qui arriver a ff me réinitialise la variable a 0.
Cela marche impeccable même si c'est pas très jolie mais en faite vous l'aurez compris, cela ma représente l'incrementation binaire. de 00000000 jusqu'à 11111111.
Bon c'est pas très joli comme guirlande donc j'ai d'autre idée bien sur mais je débute et j'arrivais pas a faire une operation plus complexe de la variable
Par exemple
unsigned float LED;
si je fait LED=LED+1 cela marche c'est ce que j'ai fait pour mon 1er prog.
Mais si je fait LED=LED+LED ou LED*LED Ou même LED*2 cela marche pas.
J'ai essayé avec par exemple LED=LED*0x02 ou LED=LED*0x2
Mais niete.
merci de votre aide j'aurais bien aimmer m'avancé un peut a la maison car je suis avec 2 loustiques en cours qui n'attende qu'une seule chose, c'est que j'ai fini mon prog du coup c'est pas facile a chercher tous seul. et j'ai pris un peut de retard par rapport a d'autre
C'est marant à 38 ans lorsque je suis arrivé en cours apres 1semaine et demi de retard par rapport a eux personne voulais se mettre avec moi mais maintenant qu'il voie que je veut y arriver il se rapproche pour demander conseil car biensur il on pas tout ecouter du cours que l'on a vu avant :) Ha ces jeunes :)
Reprise des études après 17 ans pour un BTS IRIS.
A voir également:
Debutant cherche comment fait opperation sur "float"
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017 28 sept. 2008 à 19:50
Merci pour la réponse
Il y a des truc que je connait pas encore la dedans
pow
et si non si je comprend bien "n" c'est donc m'a variable qui allumera mes Leds et on la déclare en "double" même si c'est une unsigned float qui m'est remonté.
En faite je cherche pas la sulution pour faire mon chenillard mais juste le moyen de faire des opération plus complexe que m'a variable+1 après je pourais l'integrer dans dans ce que je veut lui faire faire
Par exemple pour qu'elle s'allume les une a la suite des autres si je me trompe pas c'est ma variable Led*2.
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017 28 sept. 2008 à 20:20
En faite pour faire fonctionner le boitier (ou un simulateur) on a juste a utilisé un tParIO.h qui nous est donner par le prof.
on sait que l'objet
tParIOEcrireLed( ) nous allume les leds en fonction de la variable que l'on lui donne
et
tParIOLireBP( ) nous permet de recuperer l'info des boutons par la variable BP.
On sait aussi que les variables à donner ou a récupérer sont de type "unsigned float"
Après on connait les objets pour le boitier ou le simulateur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Spoolega
Messages postés65Date d'inscriptiondimanche 8 janvier 2006StatutMembreDernière intervention27 février 20111 1 oct. 2008 à 13:00
Bonjour,
Tu nous dis que tout ceci ne marche pas :
Mais si je fait LED=LED+LED ou LED*LED Ou même LED*2 cela marche pas.
J'ai essayé avec par exemple LED=LED*0x02 ou LED=LED*0x2
Je me demande comment tu fais ton initialisation sur ta variable LED ?
Si tu l'init. à 0, LED ne changera jamais dans toutes ces opérations.
Une autre idée aussi, mais pour ce genre de chose (chenillar) il est peut être plus pratique de travailler au niveau des bits sur ta variable :
void main(void)
{
unsigned float var = 1; // ne pas init à 0, sinon, ça ne marche pas !
for(int i = 0; i<10; i++)
printf("%x\n", var = var << 1); // affichage en hexa
}
Avec l'opérateur << on viens créer un décalage vers la gauche des bits de ta variable (cela reviens a faire une multiplication par 2). Tu peux t'amuser ainsi avec tous les autres (voir les opérateurs logiques) : >> & |
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017 1 oct. 2008 à 17:51
Bonjour,
Je n'est rien compris, non pas par ce que vous m'avez gentillement dit mais par mon problème car en faite cela marche très bien.
Mais je vais changer de machine car elle m'a refait le coup cette après midi.
Donc comme je vous disait, l'opération Led*2 marchait pas mais Led+1 oui. Lorsque j'ai repris mon exo sans rien changer à mon programme cela a bien voulu compiler et je n'avais plus de défaut.
Et aujourd'hui on a repris la même base et elle ne marchait plus, J'ai rebouter le PC et denouveau c bon.
Si non pour le decalage des bit on a vu sa aujoud'hui et je l'ai pas utilisé car du coup j'ai fait 4 prog avec des boucles.