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 ---
- 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 ---
Modérateur : Jérémy
Donner un Nom evolutif à une variable
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir à tous ,
Un truc me chiffonne ce soir, mise à part que je galère un peu avec app inventor2 .
Est-il possible de nommé une variable avec un index ?
Je voudrais par exemple qu'a chaque INT, la valeur s'enregistre dans une variable . Et j’incrémenterai cette variable ou plutôt son index
Par exemple, dans mon cas précis, je souhaite a chaque reception UART ( donc par INT) stocker ma reception dans une variable différente. Ainsi je stocke plei nde chiffre à la suite et je sais ou il se trouve ?:
Voial je pourrais passer par une usine à gaz ca je sais bien faire
), mais bon .... Peut être avez-vous l'habitude et avez une soluce plus propre !
Un truc me chiffonne ce soir, mise à part que je galère un peu avec app inventor2 .
Est-il possible de nommé une variable avec un index ?
Je voudrais par exemple qu'a chaque INT, la valeur s'enregistre dans une variable . Et j’incrémenterai cette variable ou plutôt son index
Par exemple, dans mon cas précis, je souhaite a chaque reception UART ( donc par INT) stocker ma reception dans une variable différente. Ainsi je stocke plei nde chiffre à la suite et je sais ou il se trouve ?:
Code : Tout sélectionner
Interruption UART
Variable(i) = temp;
i++;
Fin de l’interruptionVoial je pourrais passer par une usine à gaz ca je sais bien faire
), mais bon .... Peut être avez-vous l'habitude et avez une soluce plus propre !Donner un Nom evolutif à une variable
- sylvain54

Amateur- Messages : 194
- Âge : 53
- Enregistré en : août 2015
- Localisation : Dans l'est de la France
Je ne sais pas si j'ai bien compris ce que tu veux faire,
Je déclarerai un tableau de 1000 valeurs (c'est un exemple), mis à 0 au départ :
Après tu utilises les strlen & co pour aller consulter ton tableau etc, il faut aussi penser à cocher les librairies string dans le compilateur pour y avoir accès
Bon c'est fait à l'arrache au boulot, donc il y a peut être des erreurs et ce n'est peut être pas ce que tu attends
++
Je déclarerai un tableau de 1000 valeurs (c'est un exemple), mis à 0 au départ :
Code : Tout sélectionner
Mes_Temp[1000] = 0; //déclaration du tableau contenant 1000 données, je mets toutes les valeurs à 0
int temp; //variable temp, changer le type en fonction du besoin, elle est à l'extérieur de la fonction pour y avoir accès de partout dans le code
//Fonction pour remplir le tableau
void Remplissage_Tableau() {
int i = 0; //variable pour l'index
for (i=0,i<1000,i++) {
Mes_Temp[i] = temp;
i=i+1;
}
}
Après tu utilises les strlen & co pour aller consulter ton tableau etc, il faut aussi penser à cocher les librairies string dans le compilateur pour y avoir accès
Bon c'est fait à l'arrache au boulot, donc il y a peut être des erreurs et ce n'est peut être pas ce que tu attends
++
Donner un Nom evolutif à une variable
- paulfjujo

Maître- Messages : 3268
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
une variable ne peut pas etre variable ...
par contre un index permet de ranger des valeurs variable dans un tableau (qui peut s'appeler Variable)
voir aussi L'exemple donné par Sylvain54
Attention toute fois à l'espace RAM total occupé
Tableau de 1000 entiers => 2000 bytes de RAM
... sauf si on parle d'allocation dynamique comme utilisé en C ansi ..
voir le pendant MikroC librairie MemManager
.. mais je n'ai pas encore eu l'occasion de la tester dans une application
Encore un sujet à creuser avec un exemple parlant..
une variable ne peut pas etre variable ...
par contre un index permet de ranger des valeurs variable dans un tableau (qui peut s'appeler Variable)
voir aussi L'exemple donné par Sylvain54
Attention toute fois à l'espace RAM total occupé
Tableau de 1000 entiers => 2000 bytes de RAM
... sauf si on parle d'allocation dynamique comme utilisé en C ansi ..
voir le pendant MikroC librairie MemManager
.. mais je n'ai pas encore eu l'occasion de la tester dans une applicationEncore un sujet à creuser avec un exemple parlant..
Code : Tout sélectionner
Interruption UART
//Variable(i) = temp;
Variable[i]=temp
i++;
Fin de l’interruption
Donner un Nom evolutif à une variable
Donner un Nom evolutif à une variable
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir ,
Paulfjujo à encore vue juste.
Voila ma réponse .
Cette question rejoint mon projet avec le bluetooth . En effet quand j'appuie sur BP sur la tablette, j'envoie une série de chiffre à la suite . Cette série bien ordonnée aurait pus se ranger directement dans une variable aussi bien ordonnée .
Par exemple j'envoie en bluetooth : "1-42-25" .
et les valeurs se serait misent dans les valeurs correspondantes : 1 dans la variable "heure" , 42 dans la variable "minutes" et 25 dans la variable "seconde" .
Il va donc falloir que je ruse pour arriver à mes fins
Paulfjujo à encore vue juste.
une variable ne peut pas etre variable ...
Voila ma réponse .
Cette question rejoint mon projet avec le bluetooth . En effet quand j'appuie sur BP sur la tablette, j'envoie une série de chiffre à la suite . Cette série bien ordonnée aurait pus se ranger directement dans une variable aussi bien ordonnée .
Par exemple j'envoie en bluetooth : "1-42-25" .
et les valeurs se serait misent dans les valeurs correspondantes : 1 dans la variable "heure" , 42 dans la variable "minutes" et 25 dans la variable "seconde" .
Il va donc falloir que je ruse pour arriver à mes fins
Donner un Nom evolutif à une variable
- sylvain54

Amateur- Messages : 194
- Âge : 53
- Enregistré en : août 2015
- Localisation : Dans l'est de la France
Salut Jeremy,
Coté émission, Il faut créer un masque de trame : V1,V2,V3 +LF+CR dans cet exemple, tu utilises la virgule comme séparateur et LF+CR comme indicateur de fin de trame.
Coté réception, création d'une routine qui cherche la virgule et la fin de trame et met les 3 variables dans heures, minutes, secondes (par exemple).
je ne sais pas si je suis clair
++
Coté émission, Il faut créer un masque de trame : V1,V2,V3 +LF+CR dans cet exemple, tu utilises la virgule comme séparateur et LF+CR comme indicateur de fin de trame.
Coté réception, création d'une routine qui cherche la virgule et la fin de trame et met les 3 variables dans heures, minutes, secondes (par exemple).
je ne sais pas si je suis clair
++
Donner un Nom evolutif à une variable
- paulfjujo

Maître- Messages : 3268
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Par exemple j'envoie en bluetooth : "1-42-25" .
et les valeurs se serait misent dans les valeurs correspondantes : 1 dans la variable "heure" , 42 dans la variable "minutes" et 25 dans la variable "seconde" .
voir la fonction strok
tu peux soit conserver le "-" comme separateur de champ de valeur, soit utiliser le "," comme le propose Sylvain
Le ";" etant souvent utilisé , par exemple dans les fichier Excel .CSV comma separator variable
le comma americain etant ; (et , pour les francais).
Pesro c'est aussi celui là que je prefere (le ";") à cause du separateur de decimales nombre qui est déja une virgule (en francais).
En C , la fonction strtok permet de desassembler un paquet séparé par une virgule (ou autre caractere specifique)
comme on peut le faire aussi coté Appinventor2 ! dans le Sens PIC -> Appli smart Phone
un exemple que j'ai utilisé pour commander la couleur de 3 leds via un terminal
ici le separateur est une virgule
le test commence apres les 3 lettres RGB
strok permet de gerer automatiquement la position du pointeur
qui se deplace sur chaque emplacement de virgule..
on peut faire autrement, mais pourqoui ne pas utiliser une fonction dédiée pour ..
Code : Tout sélectionner
// exemple de commande recue .. pour tester la fonction
// sans utiliser la reception UART
strConstRamCpy(buffer1,"RGB1-123-245\r\n");
// Main loop
// do
// {
// if(UART1_DataReady==1)
// {
// UART1_Write_CText("Reception de : \r\n");
// UART1_Write_Text(buffer1); CRLF1();
p1=0;
p1=strstr(buffer1,"RGB");
if (p1>0)
{
cc=*(p1+3); // se positionne juste apres RGB
UART1_Write_CText("Led # ");UART1_Write(cc);
CRLF1();
p1=strtok(p1,"-"); // 1er appel pour detection du tiret
UART1_Write_Text(p1);CRLF1();
// RGB_Led[cc][0]=atoi(p1);
Delay_ms(1000);
i=0;
do
{ p1=strtok(0, "-"); // detection des separateurs (tiret) suivants
if (p1!=0)
{
UART1_Write_CText("Parametre ");
WordToStr(i,CRam1);
UART1_Write_Text(CRam1); UART1_Write(TAB);
UART1_Write_Text(p1);
ValColor=atoi(p1);
IntToStr(ValColor,CRam1);
UART1_Write_CText(" ValColor ");UART1_Write_CText(Colors[i]);
UART1_Write(TAB); UART1_Write_Text(CRam1);
CRLF1();
Delay_ms(1000);
i++;
}
}while (p1!=0) ;
CRLF1();
Delay_ms(1000);
}
strConstRamCpy(txt,"\n End of test \n");
UART1_Write_Text(txt);
CRLF1();
// RAZ_UART1(); // on nettoie tout
// } //if
// }
while(1);
}
Donner un Nom evolutif à une variable
Donner un Nom evolutif à une variable
Donner un Nom evolutif à une variable
- Gérard

Expert- Messages : 1941
- Âge : 67
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
Jérémy a écrit :C'est vrai qu'il est fort, mais le HIC, c'est que j'ai pas tout compris même avec les commentaires![]()
C'est moi le boulet, mais je pense avoir saisi le principe . Je regarderais ca à tête reposé ce soir si les enfants me laissent tranquille
T'inquiète, t'es pas le seul boulet... avec moi, on est déjà 2.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 11 invités

