12 | |||
Auteur | Messages | ||
---|---|---|---|
Totof | #16 Posté le 21/1/2013 à 20:09:48 | ||
Ce qui est pris n'est plus a prendre | Bonsoir, merci de ta réponse J'ai déjà fait cette maniup mais cela ne me donne pas ce que mon µc attend avec cette manière , si on part de la valeur décimale 400 on obtiens en Hex 00000190 ce qu'on cherche à faire , c'est de la valeur décimale 400 , envoyé par une liaison RS232 les 4 octets , je sais c'est pas simple AMHA les octets 00 00 c8 43 sont les représentions des adresses de cette valeur déci de 400 stockée en mémoire , c'est là que je sèche A bientôt | ||
Flachy Joe | #17 Posté le 21/1/2013 à 20:34:05 | ||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Je viens de comprendre d'où vient le problème : La fonction Hex$ de Gambas converti le nombre en Long puis en affiche la valeur hexa On a donc bien 400(base10)=190(base 16) Alors que ton programme en C affiche la représentation en mémoire d'un float et non sa valeur hexa ! Un float est codé avec la norme IEEE 754 (32 Bits = 1bit de signe, 8bits d'exposant et 23bits de mantisse), c'est donc un peu galère de retrouver la valeur à partir du code ou inversement. Mais en fait on s'en f**t de cette représentation tant que le µC obtient la bonne valeur à travers le port RS232. Donc si on lui envoi 400.0 en single depuis gambas(virgule flottante sur 32bits), il devrait obtenir la bonne valeur. Donc la solution fournie dans mon message précédent est parfaitement applicable, tu n'as pas besoin de chercher la représentation de la valeur 400.0 en mémoire puisque tu peut l'écrire en décimal... Ce code devrait allumer sans problème ta led de contrôle :
Flachy Joe | ||
Flachy Joe | #18 Posté le 21/1/2013 à 21:01:04 | ||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Si tu as vraiment besoin d'entrer les données sous la forme de série d'octet, voila comment faire la conversion :
Flachy Joe | ||
Totof | #19 Posté le 21/1/2013 à 22:00:44 | ||
Ce qui est pris n'est plus a prendre | Bonsoir Mille sabords , vous êtes vraiment fort , chapeau bas J'essaye les 2 propositions de suite et je vous tiens au courant A tout de suite | ||
Flachy Joe | #20 Posté le 21/1/2013 à 22:05:43 | ||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Ma réponse #17 ne fonctionne pas, dans l'un des formats comme dans l'autre : il faut passer par une variable
Flachy Joe | ||
Totof | #21 Posté le 21/1/2013 à 23:48:09 | ||
Ce qui est pris n'est plus a prendre | Re-bonsoir Pas concluant dans l'immédiat, mais la nuit porte conseil alors je vais un peu réfléchir Le post 17 avec la modif x=400 m'allume les bonnes led , par contre je doit appuyer sur envoi soit bouton2_click() plusieur fois ( 5 au total ), j'ai pas encore vérifier si c'était pour toutes les commandes ( valeur de cmde variable , un float ) bonne nuit et on en reparle | ||
Totof | #22 Posté le 26/1/2013 à 13:03:20 | ||
Ce qui est pris n'est plus a prendre | Bonjour Suite à une refonte du programme du µc , maintenant je peut envoyer un n° de commande et la valeur de cette commande sous forme de chaîne sous la forme de 2 300 3 250 4 7 6 5.1 7 10.0 après chaque nombre entré je fait "entrée" ou sous Gambas un "\n" pour avoir un LF line end etc , le prog décode ma chaine de caractère avec comme marqueur du point décimal le "." la routine est basée pour interprétée un nombre avec 3 chiffres après le point Avec Cutecom ça fonctionne nickel , donc j'ai commencé à implanter sous Gambas pour envoyer le n° de cde et réceptionner le retour du µc aucun soucis , par contre pour la valeur , pour 400 le µc me renvoie 40 Un petit détail à résoudre Je posterai un exemple de mes résultats cet après midi ensuite la gestion de la communication avec le µc est une question de gestion des chaînes de caractères (string) et gestion des fichiers On avance en tout cas Bon appétit | ||
Totof | #23 Posté le 26/1/2013 à 21:41:38 | ||
Ce qui est pris n'est plus a prendre | Bonsoir Ci joint 2 captures, la première c'est au lancement du prog sous Gambas quand j'ouvre le port com le prog lit le fichier List_cmde.txt et envoie les chaîne vers l'Atmega32 l'Atmega répond par le courant d'anode les communication sont listée dans une listbox Tout semble fonctionné ci-joint un bout de code
la deuxième capture en rentrant les 3 dernières commandes séparément on remarque de suite que 300 devient 30 et -12 devient -1 Voilà pour l'avancement Une idée du pourquoi du rabotage Bonne soirée | ||
Totof | #24 Posté le 26/1/2013 à 22:49:18 | ||
Ce qui est pris n'est plus a prendre | Re bonsoir j'ai trouvé pour envoyer les commandes en individuel , une petite temporisation ( idée qui m'est revenu en relisant les post de ce forum ) le bout de code
Si ça peut aider quelqu'un qui voudrait faire une interface µc et le résultat sous Gambas | ||
Totof | #25 Posté le 26/1/2013 à 22:50:14 | ||
Ce qui est pris n'est plus a prendre | |||
12 |