12 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
Totof | #1 Posté le 18/1/2013 à 10:28:23 | ||||
Ce qui est pris n'est plus a prendre | Bonjour et meilleurs voeux a tous Je me présente , mon surnom est Totof légèrement autodidacte et passionné de "DIY à lampes", je me suis mis a Gambas pour mon plaisir personnel et mon projet DIY 2013 Après avoir parcouru pas mal le forum et d'autres sources , je suis bloqué je n'ai pas trouvé de quoi me dépatouiller tout seul, d'ou cet appel à l'aide L'objet: je voudrais créer une IHM qui pilote un µc Atmega32L via le port RS232 l'ouverture du port et la réception de trame venant du µc est opérationelle je bloque en envoyant au µc des trames composées comme ceci n° de commande = x valeur de commande = y exemple n° de cde = 1 (en Hex) valeur de cde = 400 (en Hex) sous Cutecom mon µc répond correctement la trame est 01 00 00 c8 43 ou 010000c843, ce qui m'allume une led de contrôle Ma question, sous Gambas j'utilise le code suivant
je bloque dans la manière de créer la trame pour obtenir sTs = 010000c843 j'ai essyé sTs = Hex$(x) & Hex$(y) ou les autres formes de la page d'aide de l'IDE mais sans succès la page dont je parle est celle-ci http://www.gambasdoc.org/help/lang/hex?fr&v3 Est ce un soucis de déclaration de variable en créant sTs Est ce un soucis de déclaration de variable dans la routine Button2_click() Une mauvaise utilisation de Write Merci de vos réponses Et a très bientôt | ||||
Flachy Joe | #2 Posté le 19/1/2013 à 20:06:48 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Salut, es-tu sûr qu'il faille l'envoyer en texte ? j'aurai plutôt fait :
Flachy Joe | ||||
Totof | #3 Posté le 19/1/2013 à 21:27:27 | ||||
Ce qui est pris n'est plus a prendre | Bonsoir Merci de ta réponse En fait je doit envoyer un n°de commande et une valeur de commande via le port RS232 J'espère ne pas déborder du cadre de ce forum , si oui je m'en excuse d'avance On a actuellement une moulinette en C qui communique avec le µc ce dernier embarque un programme écrit en C lui aussi , la moulinette envoi est ces lignes
Donc en fait après réflexion , je devrait envoyer un integer et un single au µc le bout de code qui réceptionne la commande dans le µc est le suivant
| ||||
Totof | #4 Posté le 19/1/2013 à 21:28:28 | ||||
Ce qui est pris n'est plus a prendre | Voilà si ça peut aider à trouver ou je bloque Merci de vos idées | ||||
Flachy Joe | #5 Posté le 20/1/2013 à 12:31:21 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Oups, ce que j'ai indiqué avant fonctionnait en Gambas 2, ça détectait automatiquement le type de données
En Gambas 3, il faut utiliser un typage explicite :
Références : http://gambasdoc.org/help/lang/write?fr&v3 et http://gambasdoc.org/help/lang/write?fr&v2 Flachy Joe | ||||
Totof | #6 Posté le 20/1/2013 à 12:52:45 | ||||
Ce qui est pris n'est plus a prendre | Bonjour Merci pour la réponse, je décortique cela et fait mes essais je vous tiens au courant du résultat a+ | ||||
Totof | #7 Posté le 20/1/2013 à 18:47:44 | ||||
Ce qui est pris n'est plus a prendre | Bonsoir Pour Flachy joe, ta solution fonctionne en effet Soit je trouve le moyen de générer les &h01 et &h0c843 au départ de le valeur numérique soit il nous faudra modifier l'envoi et la réception au niveau µc En fait le µc réceptionne octet par octet donc si je prend par exemple 400, les 4 octets envoyés son 0 0 c8 43, d'ou le &h0c843 mon soucis comment passer de 400 à &h0c843 de manière simple En lisant la doc , je suis tombé sur les histoire de pointeur mais , honnêtement j'arrive pas a me servir des exemples et à les comprendres Aurais tu une idée merci de ta réponse | ||||
Flachy Joe | #8 Posté le 20/1/2013 à 19:37:02 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Je vois pas trop comment tu passes de 400 à &h0c843 car C843(base 16) = 51267(base 10) et 400(base 10) = 190(base 16). Tu as peut être une liste de commandes numérotées avec une correspondance avec le code à envoyer ? Sinon que tu fournisse à Gambas le nombre en hexa ou en décimal ne change rien... Flachy Joe | ||||
Flachy Joe | #9 Posté le 20/1/2013 à 19:46:04 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Je réalise en te relisant, en fait le &hc843 est le retour de ton µC, c'est bien 400 que tu lui envoi ! donc il te faut un Read quelque part pour recupérer le code de retour, et là tu pourra l'analyser et tu trouveras sans doute ton &hc843... Flachy Joe | ||||
Totof | #10 Posté le 20/1/2013 à 20:01:25 | ||||
Ce qui est pris n'est plus a prendre | Re-bonsoir Non c'est bien la commande envoyée au µc, en fait c'est une routine en C que j'ai posté plus haut et c'est la lecture des 4 adresses du float en C Mais, on a refait une routine qui réceptionne et renvoie une trame texte , pour contourner le soucis je la testerai ce soir , j'attends la réception du programme et fichier .hex modifié pour charger dans le µc Donc le nombre 400 est transformé par le programme en C en adrss = 0 adrss+1 = 0 adrss+2 = c8 adrss+3 = 43 Si on pouvait faire cela directement sous Gambas cela soulagerait le programme dans le µc To be continued Bon appétit | ||||
Totof | #11 Posté le 20/1/2013 à 20:06:16 | ||||
Ce qui est pris n'est plus a prendre | Oups En relisant la doc de Gambas sur les integer on y trouve pour un entier positif une écriture 0000c000 Je pense que c'est la même représentation , mais j'arrive pas non plus a passer de l'une a l'autre mais essais précédents avec Hex$ etc mon aussi donné 51267 et 190 et pas le 0000c843 attendu voir ici A+ | ||||
Flachy Joe | #12 Posté le 20/1/2013 à 20:50:09 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Si tu te réfères à cette page : http://gambasdoc.org/help/lang/type/integer?fr&v3 la valeur hexa &hc000 n'est qu'un exemple. Par contre ça met un autre truc en valeur : il faut terminer tes constantes hexa par un & sinon les octets hauts sont mis à F. Donc valeur = &hC843& Est ce que tu peux me filer le code qui te renvoi le &hC843& ? Flachy Joe | ||||
Totof | #13 Posté le 20/1/2013 à 20:57:31 | ||||
Ce qui est pris n'est plus a prendre | Re oui, Après manger , j'y bais là c'est sur mon PC et là je suis sur mon portable A+ | ||||
Totof | #14 Posté le 20/1/2013 à 21:48:02 | ||||
Ce qui est pris n'est plus a prendre | Bonsoir Voici le bout de code en C qui édite les octets
Si ça peut aider Bonne soirée | ||||
Reivillo | #15 Posté le 21/1/2013 à 19:46:11 | ||||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Bonsoir Totof. Si c'est la conversion, Décimal > Hexadécimal
Reivillo. Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||||
12 |