bonjour,
j'aimerai lire des valeurs de registres sur la sortie série avec le block SL OUT, mais je galère pour obtenir une réponse du Millenium. Je fais donc appel à votre sagacité.
La sortie 25 est fixée avec une valeur=1234
Mes valeurs sont présentes sur la sortie 25 (selon la doc 25-1=24, soit 18 hexa)
Calcul de La trame a envoyer
: 04 03 00 00 FF (Constante) 18(1ere addr. à lire) 0A(nbr. d'octets=10) D8(Checksum) CR LF
Calcul du checksum (sans le : initial)
04+03+00+00+FF+18+0A = 128
Complément à 1, 1-28= D7 puis on augmente de 1 soit D8
Transformation en codage ASCII
: 0 4 0 3 0 0 0 0 F F 1 8 0 A D 8 CR LF
3A 3034 3033 3030 3030 4646 3138 3041 4438 0D 0A
J'envoie cette trame avec un câble série et le soft YAT trouvé sur Sourceforge.net (avec les paramètres 115'000, 7bits, paire. 1 stop ). Le port est bien ouvert et connecté.
Mais le résulat reçu est du genre ;7;?;?;7=;=;w
Mon but est de lire cette valeur régulièrement avec un microprocesseur PIC et de stocker ces données sur une carte mémoire SD/MMC.
Merci pour votre aide.
M3 Lecture SL OUT ?
Modérateurs : ramses, Balajol, monteric, j2c
bonjour,
Tu trouveras une bonne partie sur les tutaux sur la page de presentation du forum
http://www.apper-solaire.org/Pages/Prog ... lenium.pdf
bonne continuation
Tu trouveras une bonne partie sur les tutaux sur la page de presentation du forum
http://www.apper-solaire.org/Pages/Prog ... lenium.pdf
bonne continuation
Modifié en dernier par YVES238 le dim. janv. 16, 2011 9:15 am, modifié 2 fois.
- p_bricoleur
- Modérateur
- Messages : 1671
- Enregistré le : mar. déc. 27, 2005 10:37 am
- Localisation : Rueil-Malmaison (92)
- Contact :
Bonsoir,
J'ai regardé rapidement.
La trame que tu envoies me semble correcte, en tout cas, mes programmes envoient la même et ça marche.
A noter que comme tu fixes à 10 le nombre d'octets lus et qu'il y a 2 octets par données, tu vas recevoir les données de 25 à 29 incluses.
Es-tu sûr que le Millenium te répond et que tu ne lis pas un tampon non initialisé ?
Si le Millenium te répond vraiment, c'est déjà que ça marche : il a trouvé ta demande correcte et il l'a traitée.
A la moindre erreur dans la demande (checksum, adresse incorrecte), il ignore la requête. C'est ce qui se passe le plus souvent lors des 1ers essais.
Est-ce que YAT n'ajouterait pas encore un CR/LF ?
Egalement, est-il nécessaire de coder l'ASCII ? En général les commandes de terminal sont envoyées directement sous forme de chaine et le programme envoie les bons octets (comme quand on écrit en C dans un fichier binaire ou un port série)
Cordialement,
Thierry Streiff
J'ai regardé rapidement.
La trame que tu envoies me semble correcte, en tout cas, mes programmes envoient la même et ça marche.
A noter que comme tu fixes à 10 le nombre d'octets lus et qu'il y a 2 octets par données, tu vas recevoir les données de 25 à 29 incluses.
Es-tu sûr que le Millenium te répond et que tu ne lis pas un tampon non initialisé ?
Si le Millenium te répond vraiment, c'est déjà que ça marche : il a trouvé ta demande correcte et il l'a traitée.
A la moindre erreur dans la demande (checksum, adresse incorrecte), il ignore la requête. C'est ce qui se passe le plus souvent lors des 1ers essais.
Est-ce que YAT n'ajouterait pas encore un CR/LF ?
Egalement, est-il nécessaire de coder l'ASCII ? En général les commandes de terminal sont envoyées directement sous forme de chaine et le programme envoie les bons octets (comme quand on écrit en C dans un fichier binaire ou un port série)
Cordialement,
Thierry Streiff