Bonjour tout le monde ! J'ai 2 questions que vous trouverez sans doute simple, mais j'ai besoin de votre aide :
Imaginons que les entrée/sorties numeriques 22,23,24,25 de ma carte soient branchés sur un bus de données (avec 22 lsb,25msb) qui est la sortie de mon montage, et donc des INPUT digitales sur ma carte. J'aimerais creer une fonction qui permettrait de lire les états des broches 22,23,24,25 et ensuite d'assigner ces valeurs sur un octet appelé par exemple BusSortie, où le lsb aurait comme valeur la broche 22, le lsb+1 la broche 23 etc.. J'ai fait cette fonction mais elle ne marche pas :
Deuxième problème, j'aimerais savoir comment stocker plusieurs chaines de 20 caractères dans un tableau , et de pouvoir ensuite envoyer une de ces chaines dans un autre tableau à 2 dimensions qui contient des long int sur l'une de ses lignes. J'ai essayé ceci :
const char *chaine[20]={"A7000000001111111111,A7000000010000000000"}; // tableau contenant les 20 chaines de 20 caractères (j'ai effacé les 18 autres pour une meilleure lisibilité)
long int nb[150][2]; // tableau contenant des long int
void setup(){
for (int i=0; i<150; i++)
{
nb[i][0]=0xFFAB; // je remplis une ligne par un nombre
}
nb[0][1]=*chaine[0] // ici, est ce que le contenu de la premiere case de mon tableau de chaine de caractère est stocké dans la premiere ligne/deuxieme colonne de mon tableau de nombre ?
}
void test()
{
int busSortie=0;
for (int i=25; i>=22; i--)
{
busSortie<<1; // décale a gauche pour mettre le prochain bit
busSortie|=digitalRead(i); // range le bit dans le lsb
}
}
Merci beaucoup pour vos réponses !
En gros pour le 2e probleme : j'aimerais faire passer une chaine de 20 caractères initialement présente dans un tableau de chaine de caractère vers un tableau de long int, est ce possible ?
1 pour 0 ou 0 pour 1, peut importe, c'est le principe que je voulais te montrer.
remise de la variable à 0: vieille habitude, nettoyage du chantier avant de le quitter.
D'accord merci !
Pour le deuxieme probleme j'ai pensé a une idée un peu plus simple pour ce que je souhaiterais faire :
J'aimerais stocker dans un tableau 2 dimensions (qui contient initialement des nombres a 8 bits sur sa premiere ligne) sur la 2eme ligne des adresses qui mènent a des chaines de caractère qui sont stockés dans un autre tableau. ( comme ca j'aurais dans une colonne mon nombre 8 bit avec en dessous une chaine de caractère).
Les tableaux ne sont pas prévus pour gérer des variables de types hétérogènes, les structures sont faites pour ça. On peut faire des tableaux de structures.
Ah d'accord ! Et donc du coup est ce que je pourrais par exemple avec une fonction sprintf relier mes chaines de caractère a un vecteur, stocker ces vecteurs et les mettre dans mon tableau contenant les nombres ? puis ensuite lorsque je voudrais afficher ma chaine de caractère je passerais par une conversion via mon vecteur ? est ce possible ?
Oui biensur je vais essayer . Pour commencer j'aimerais savoir si ce programme fait ce que je desire, c'est a dire stocker chacune de mes chaines de caractères à une adresse dans le pointeur appelé "adr", avec dans adr[0] l'adresse contenant *chaineChar[0], adr[1] l'adresse contenant *chaineChar[1] etc..