Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

[résolu]Keypad 4x4
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1326
Âge : 68
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#31 Message par paulfjujo » jeu. 2 mai 2019 14:22 lien vers la Data-Sheet : Cliquez ici

bonjour Venom

Problemo :
tu ecrabouilles ta valeur à chaque tour de boucle ...
sur le LCD, tu ne le vois pas, car le curseur avance à chaque tour avec l'indice 1+j

Code : Tout sélectionner


for 
(j=0; j<Longeur_Premiere_Valeur; j++)
 {
  //I2C_LCD_Chr(2,1+j,code1[j]);
  Premiere_Valeur = code1[j]-48;            // recupere la valeur de la premiere partie de l'operation
 }
 



il faut ponderer la valeur en fonction de sa position dans le nombre
ex 228
valeur=
2*100
+2*10
+8*1

si Longueur_Premiere_valeur=3 et j=0
Longueur_Premiere_valeur-j-1 = 2
poids[2]=100 ..etc ..


Code : Tout sélectionner

//Rajouter une table de ponderation
poids[0]=1;
poids[1]=10;
poids[2]=100;
poids[3]=1000;

f(Type_Operation == 1)                     // si l'operation est une addition
{
 Premiere_Valeur=0;
 for (j=0; j<Longeur_Premiere_Valeur; j++)
 {
 
  
//I2C_LCD_Chr(2,1+j,code1[j]);
  Premiere_Valeur=Premiere_Valeur = (code1[j]-48) * poids[Longueur_Premiere_valeur-j-1];     // recupere la valeur de la premiere partie de l'operation
  
Aides toi, le ciel ou Fantastpic t'aideras

[résolu]Keypad 4x4
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 620
Âge : 33
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#32 Message par venom » jeu. 2 mai 2019 15:02 lien vers la Data-Sheet : Cliquez ici

Bonjour paulfjujo,

:shock: :? Je ne connais pas du tout ce principe. Merci de m'avoir aiguillé. Je pense avoir compris le principe, mais je vais d'avantage m'en informer sur le sujet car je ne connais pas du tout. :eek:
J'ai peut être vue grand en me lançant dans ce projet :sifflotte: :-D

C'est surement ce qu'a voulu m'expliquer Jeremy plus haut
Jérémy a écrit :Quand on détecte un signe "+-*/" , le tableau est donc remplis. la valeur de i-1 nous donne le nombre de chiffres qui ont été rentrés. et donc on va pouvoir les multiplié par 10, 100, 1000 , 10000 ..... suivant la valeur de i.
ensuite on additionne tous ces chiffres et on obtiens notre valeur finale !







@++
En fait tout est une question de BIT ? :-D

[résolu]Keypad 4x4
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1326
Âge : 68
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#33 Message par paulfjujo » jeu. 2 mai 2019 20:19 lien vers la Data-Sheet : Cliquez ici

venom a écrit :C'est surement ce qu'a voulu m'expliquer Jeremy plus haut


tou à fée !

ne pas oublier d'initilaliser le tableau poids

Code : Tout sélectionner


 unsigned int Poids
[]={1,10,100,1000,10000};
 

remarque:
on a plus l'habitude de gerer les poids des bits dans un octet ou mot binaire ...

Code : Tout sélectionner

unsigned int Binaires[]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768}; 

apres ça depend dans quel sens on l'utilise..
Aides toi, le ciel ou Fantastpic t'aideras

[résolu]Keypad 4x4
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 620
Âge : 33
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#34 Message par venom » jeu. 2 mai 2019 20:40 lien vers la Data-Sheet : Cliquez ici

Ok merci pour la précision. Je t'avoue que la première initialisation me parle plus (en termes visuel) que la seconde. :-D






@++
En fait tout est une question de BIT ? :-D


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités