Voila, je cherche à générer une fonction à partir d'une chaine de caractères... Est ce possible ?
Exemple : On veux lancer la commande porta.f0, mais en incrémentant le 0 en 1 puis 2 etc. dans une boucle.
Je pensais donc générer la fonction à partir de l'addiciton d'une chaine de caractère ("porta.f" ) et d'un int qui s'incrémente et que je convertis en char...
Y aurait il une solution dans le coin ?
Merci d'avance
FB
Message édité par 187bundy le 05-03-2007 à 19:20:05
Oui... Mais alorsje suis obligé de rentrer toutes les formes de ma fonction dans mon tableau ? Genre porta.f0,porta.f1,porta.f2 etc. Je peux pas la générer directement à partir d'un texte ?
Alors voila en fait je programme une puce de type PIC et ses entrées sorties se commandent en C comme suit :
porta.f0=1; // on force la sortie A0 à 1.
portb.f2=0; // on force la sortie B2 à 0.
Vous voyez l'idée ? Docn la fonction n'est pas vraiment paramétrable du genre fonction(paramètre1,paramètre2)... Donc je sais pas trop comment faire si j'ai des séries...
Je pense meme qu'on peut les voir comme des struct de BOOL sur 1 bit
sans en savoir plus je partirais sur le postulat qu'on a 2 ports (A et B) ayant chacun 8 bits (0..7).
le problème avec l'usage du C sur microcontrolleur c'est qu'on perd le controlle du détail a mon avis tout ça c'est fortement optimisable en asm en incrementant les adresses correspondantes à la main directement (enfin vu qu'il s'agit qd même d'un C adapté c'est peut etre faisable comme ça qd meme)
edit: bon solution "simple" pour decaller le numéro à chaque iteration un bon petit
Code :
num = num<<2;
en initialisant
Code :
unsignedchar num=1;
au tout début, selectionnerais le bit correspondant de manière "rotative" ...
Message édité par boub popsyteam le 04-03-2007 à 19:34:43
Alors alors... En fait oui ce sont des variables, si on veut, mais qui répondent directement à une fonction à laquelle je n'ai pas accès. Donc pour répondre à vos questions :
- Il y a 4 ports A,B,C,D comprenant chacun 8bits (0 à 7).
- Le PIC est un 16F877A.
- Pour un exemple, on pourrait prendre un chenillard qui allume alternativement les 32 diodes (4ports * 8bits). bien sûr je peux faire une structure en if (des tonnes de lignes de prog ) ou alors un tableaux avec les 32 variables... Mais je rêvais d'une possibilité de "générer" la variable à partir d'une chaine... Du coup ma fonction ne ferait que quelques lignes. Mais peut être est ce impossible ?
FB
Message édité par 187bundy le 05-03-2007 à 15:50:07