Audiyofan
Audiyofan




Poster un nouveau sujet Répondre au sujet  [ 532 messages ]  Aller à la page Précédente  1 ... 13, 14, 15, 16, 17, 18, 19 ... 36  Suivante
Auteur Message
 Sujet du message: Re: Lampemetre
MessagePosté: Lun 14 Jan 2013, 23:20 
Hors ligne
Membre Assidu
Avatar de l’utilisateur

Inscription: Dim 09 Oct 2011, 16:53
Messages: 198
Localisation: 15kms sud Rennes
Bonjour,

Non, non....

Il est difficile d'envoyer des commande en manuel à partir de cutecom car
une trame PC--µC comporte un entier 8 bits (la commande) et un flottant 32 bits (la valeur).

Si l'entier est facile à convertir en hexa, c'est bien plus dur pour le flottant car c'est la maniere
dont l'OS et le C stockent une variable flottante (mantisse, exposant)

Ci dessous les 1+4 octets en hex envoyés et la fonction correspondante

01 00 00 c8 43 envoi_cmde(fd,SET_VA_max,400) ;
03 00 00 00 00 envoi_cmde(fd,SET_VG1_max,0) ;
0c 00 00 a0 c0 envoi_cmde(fd,SET_VG1_min,-5) ;
02 00 00 96 43 envoi_cmde(fd,SET_VG2_max,300) ;
0b 00 00 00 00 envoi_cmde(fd,SET_VG2_min,0) ;
04 00 00 e0 40 envoi_cmde(fd,SET_VFIL_max,7) ;
0d 00 00 a0 40 envoi_cmde(fd,SET_VFIL_min,5) ;
05 00 00 60 40 envoi_cmde(fd,SET_IA_max,3.5) ;
07 6f 12 83 3a envoi_cmde(fd,SET_IG1_max,0.001) ;
06 6f 12 83 3a envoi_cmde(fd,SET_IG2_max,0.001) ;
08 cd cc 4c 3f envoi_cmde(fd,SET_PWA_max,0.8) ;
09 6f 12 83 3a envoi_cmde(fd,SET_PWG2_max,0.001) ;
0a 6f 12 83 3a envoi_cmde(fd,SET_PWG1_max,0.001) ;
11 9a 99 c9 40 envoi_cmde(fd,SET_VFIL,6.3) ;


Pour avoir une sortie ecran des octets envoyés, modifier la routine comme suit:

//-----------------------------------------------------------------------
//envoi d'une commande
//-----------------------------------------------------------------------
int envoi_cmde(int fd,int cmde,float v)
{
unsigned char rec;

//pour avoir une copie des octets envoyés
{
unsigned char *addr;

addr=(unsigned char*)&v;

printf("\ncommande %d valeur %f\n",cmde,v) ;

printf("codage de la commande (en hex) %x\n",cmde) ;
printf("codage de la valeur (en hex) %x %x %x %x\n",*addr,*(addr+1),*(addr+2),*(addr+3)) ;

getchar() ;
}

//printf("envoi de la commande %d\n",cmde) ;

//envoi du numero de commande
rs232_tx_8(fd,cmde) ;

//envoi du float associe
rs232_tx_32(fd,v) ;

//recup du code retour
rs232_rx_8(fd,&rec) ;

//printf("code retour %d\n",rec) ;


return rec;
}

_________________
Cordialement
Phil
(http://bidulic.free.fr)


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Lun 14 Jan 2013, 23:30 
Hors ligne
Membre Assidu
Avatar de l’utilisateur

Inscription: Dim 09 Oct 2011, 16:53
Messages: 198
Localisation: 15kms sud Rennes
Bonjour,

Juste pour info sur le codage binaire des flottants, consulter la norme IEEE_754

http://fr.wikipedia.org/wiki/IEEE_754

_________________
Cordialement
Phil
(http://bidulic.free.fr)


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Mar 15 Jan 2013, 07:15 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Bonjour Philbob

Merci, je vais modifier comme indiqué tub18

Je vais donc pouvoir essayer d'envoyer via gambas et
hop un bond en avant et du pain sur la planche :mrgreen:

a ce soir pour de nouvelles aventures :wink:

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Mar 15 Jan 2013, 23:08 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Bonsoir Philbob

J'ai modifié comme indiqué et récupérer les instructions passé par le prog_pc au µc

J'ai essayé ce soir de produire les mêmes séquences avec gambas, :oops:
facile à voir si ça marche car à chaque ligne sous prog_pc une led s'allume tub18
et on fait entrée à chaque commande tub18

mais sous Gambas , rien ne s'allume :cry: , je continuerai demain à chercher
pourquoi , c'est une question de formatage à l'envoi, mais j'ai pas réussi
pour l'instant


Par contre avec Cutecom , aucun soucis j'arrive à rentrer les séquences
comme ceci pour la commande 1 par exemple
en cochant Hex input et Hex output

je tape

01 00 00 c8 43
ou
010000c843

les 2 façons marche et une led s'allume :wink:

Sue ce, bonne nuit

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Mer 16 Jan 2013, 07:29 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 15 Juin 2005, 17:23
Messages: 7292
Localisation: Ardeche
Salut Tof

Code:
Utilise le type Byte qui peut recevoir une valeur comprise entre 0 et 255 c.a.d. 00 à FF hexa.
Tu dois avoir une fonction (ou sub )du style:

Envoi(valeur as Byte)
Qui attend un octet et l'envoie sur la RS232 (ou autre)

Dim MonOctet As Byte
. . .
MonOctet = 0                      'Vaut  hexadécimal 00
Envoi (MonOctet)
MonOctet = 255                   'vaut "FF"
MonOctet = 10                     'vaut "0A"



Voir aussi:
http://gambasdoc.org/help/lang/hex?fr

Voila, bonne journée.

Yves.

_________________
Seules les choses que l'on refuse de comprendre en leur attribuant des propriétés magiques semblent compliquées.


Dernière édition par Yves07 le Mer 16 Jan 2013, 09:17, édité 1 fois.
Grosse bourde : FF = 255, pas 256 !


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Mer 16 Jan 2013, 07:35 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Bonjour et merci Yves

Je regarde ça ce soir

Bonne journée à tous

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Jeu 17 Jan 2013, 19:17 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Bonsoir

J'ai reçu mes quelques composants pour test
a savoir les selfs de 330uH, les UF4007, les IRF840, l'IRF1404Z,etc

bref de quoi monté les booster HT
le chauffage

Me manque les PGA113 commandé mais pas reçu ( prévu mi-février)

Faudra réfléchir sérieusement à l'alim négative :oops:

Ca c'est pour le côté positif :mrgreen:

le côté négatif j'arrive pas avec Gambas à envoyé ma commande au µc
j'ai lu et relu la doc sur Hex$ mais ça fonctionne pas
ci-joint une captrure de mes essais infructueux

Public Sub ReadResultbtn_Click()
Dim bX As Short ' 16 bits signed
Dim dX As Short ' 16 Bits signed
Dim sX As Short
Dim hexbx As String
Dim hexdx As String
Dim hexsx As String

bX = 1
dx = 0
sX = 200
hexbx = Hex$(CLong(bX) And &hff&)
hexdx = Hex$(CLong(dX) And &hffff&)
hexsx = Hex$(CLong(sX) And &hffffffff&)

'Print hexbx & hexdx & hexsx

Textbox14.text = "50" & Hex$(LCDNumber1.Value, 4) & Hex$(LCDNumber2.Value, 4) & Hex$(LCDNumber3.Value, 4) & Hex$(LCDNumber4.Value, 4)


TxtSend.Text = hexbx & hexdx & hexsx
End


Je sèche complet , j'ai remarqué qu'en tapant les byte séparé et plusieurs fois , ça communique et allume les LEDs
mais pas celle attendues :oops:

Peut être posé la question sur le forum Gambas, vous en pensé quoi :?:

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Jeu 17 Jan 2013, 19:35 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Petite précision

je viens de compté les pression sur envoi , j'appuie 4 fois pour allumer les mauvaise Leds

j'en déduis que c'est un problème de mise en forme car la trame est 01 00 00 c8 43

A+

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Jeu 17 Jan 2013, 23:07 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 15 Juin 2005, 17:23
Messages: 7292
Localisation: Ardeche
Totof a écrit:
j'en déduis que c'est un problème de mise en forme car la trame est 01 00 00 c8 43


Essaye d'envoyer :
1 0 0 200 67
directement à la fonction(routine) qui cause au µP
Exemple en supposant qu'elle s'appelle "putc()"

putc(1)
putc(0)
putc(0)
putc(200)
putc(43)


Yves.

_________________
Seules les choses que l'on refuse de comprendre en leur attribuant des propriétés magiques semblent compliquées.


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Jeu 17 Jan 2013, 23:34 
Hors ligne
Membre Assidu
Avatar de l’utilisateur

Inscription: Dim 09 Oct 2011, 16:53
Messages: 198
Localisation: 15kms sud Rennes
Bonjour,

Si _ça peut aider...

Un programme à entrer dans le µC qui se contente d'afficher
pendant quelques secondes le code reçu sur un réseau de leds
branchées sur le port C.

L'affichage du code se fait en binaire 0=led éteinte 1=led allumée.
puis l'affichage se coupe pendant une demie seconde,
puis toutes les leds s'allument brièvement,
puis l'affichage se recoupe pendant une demie seconde.

Le restant du temps, les leds s'animent façon chenillard.


Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

_________________
Cordialement
Phil
(http://bidulic.free.fr)


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Ven 18 Jan 2013, 07:20 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Bonjour Yves et Philbob

Aujourd'hui repos donc j'essaye ça dans la journée et je vous tiens au courant

"On l'aura un jour , on l'aura :wink: "

A+

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Ven 18 Jan 2013, 10:14 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 15 Juin 2005, 17:23
Messages: 7292
Localisation: Ardeche
Voilà qui devrait t'aider:

Code:
Private Sub sendcommand()
  Dim command As New Integer[]
  Dim i As Integer
 
  command.Push(&h1)       'Quelques valeurs sous forme hexadécimale
  command.Push(&h00)
  command.Push(&h00)
  command.Push(&hc8)
  command.Push(&h43)
' . . . . . . etc . . . .
  command.Push(255)      'D'autres sous forme décimale
  command.Push(100)
  command.Push(200)
   
  For i = 0 To command.Max
    Debug "hexa:", Hex(command[i]), "vaut:", command[i], "en décimal"
       'Hex n'est là que pour que tu puisses "voir" la valeur sous sa forme hexadécimale
       'Sinon tu la vois sous sa forme décimale, mais c'est la même valeur ! !
'''    MaRoutineDenvoieVersMonHardware(command[i])  'et tu l'envoies telle quelle à ton µP
  Next
End


Et la console affiche:


FAlsa.sendcommand.192: hexa: 1 vaut: 1 en décimal
FAlsa.sendcommand.192: hexa: 0 vaut: 0 en décimal
FAlsa.sendcommand.192: hexa: 0 vaut: 0 en décimal
FAlsa.sendcommand.192: hexa: C8 vaut: 200 en décimal
FAlsa.sendcommand.192: hexa: 43 vaut: 67 en décimal
FAlsa.sendcommand.192: hexa: FF vaut: 255 en décimal
FAlsa.sendcommand.192: hexa: 64 vaut: 100 en décimal
FAlsa.sendcommand.192: hexa: C8 vaut: 200 en décimal


Yves.

_________________
Seules les choses que l'on refuse de comprendre en leur attribuant des propriétés magiques semblent compliquées.


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Ven 18 Jan 2013, 10:35 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Bonjour Yves

j'ai posté un message sur le forum Gambas au cas ou :oops:

je teste ton bout de code cet après midi

un truc me chiffone

la trame devrait être
n° de cde = 1
valeur de cde = 400

j'ai remarqué aussi que c8 = 200 en décimal et 43 = 67 :oops: :oops:

de plus sous Cutecom j'ai tapé la suite de cde jusqu'a la cde 18 et le µc
me retourne bien la réponse attendue soit la trame pour créer le fichier .tdf :mrgreen:

on va y arrivé , on va tub18

ménage ce matin, j'y retourne sinon ma femme va m'engeuler tub28
a+

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Ven 18 Jan 2013, 12:06 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 15 Juin 2005, 17:23
Messages: 7292
Localisation: Ardeche
Peut être comme ça:

Code:
Public Sub Button2_Click()
  sendcommand("01 02 20 30 40 100")   'En réalité TxtSend.Text
End

Private Sub sendcommand(cde As String)
  Dim e As String[]
  Dim c As String
 
  e = Split(cde, " ")     'Récupère les "octets" 1 par 1 (en fait, ce ne sont que des chaines de caracères "lisibles")
  For Each c In e
    Debug Val(c), Hex(Val(c))         'montre la VALEUR en décimal et en hexa
'    Write #Sport, Val(c) As Single   'ecrit la VALEUR, pas sa représentation "lisible"
'    (je n'ai pas de Sport, vire le commentaire !)
  Next
End

_________________
Seules les choses que l'on refuse de comprendre en leur attribuant des propriétés magiques semblent compliquées.


Haut
 Profil  
 
 Sujet du message: Re: Lampemetre
MessagePosté: Ven 18 Jan 2013, 12:15 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 9159
Localisation: St Mathieu de Tréviers près de Montpellier
Re Yves

J'ai essayé vite fait ta manip précédente
pas mieux
j'essaye celle dito après manger

Bon appétit

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 532 messages ]  Aller à la page Précédente  1 ... 13, 14, 15, 16, 17, 18, 19 ... 36  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Aller à:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com