Logicielsmoto.com

Nous sommes le 28 Mar 2024, 20:05

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 
Auteur Message
MessagePosté: 01 Juin 2009, 21:27 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
Quelqu'un m'a proposé de faire un programme qui, relié à l'entrée Moniteur, permettrait d'utiliser la CC90-232 arrangée avec l'instruction OPEN sous Basic 512. Ceci en vue d'effectuer des transmissions entre PC et Thomson, ou entre deux Thomson.

Que pensez vous qu'il serait le mieux ? Préserver le panel de vitesses (110, 300, 600, 1200, 2400, 4800, 9600 et 19200 bauds) que propose le Basic, ou forcer une vitesse fixe mais plus grande (38400 bauds, par exemple) sans se soucier du paramétrage passé par OPEN ? Et que pensez-vous surtout de cette idée ? A-t-elle un intérêt à vos yeux ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 02 Juin 2009, 10:06 
Hors ligne

Inscription: 22 Mai 2009, 11:08
Messages: 68
Localisation: dijon
ben coucou prehisto et rebonjour !

comme tu sais ton idee m'interesse beaucoup^^

car pas de lecteur de dk compatible avec mon to8d
pour l'instant donc bref on va faire avec

donc je suis le topic avec beaucoup d'interet !

a bientot pour de nouvelles aaaaaaaaaaaaventures

stef :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne: :tourne:

_________________
--- que dire ---


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 02 Juin 2009, 11:22 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Si tu ecris un driver pour BASIC, tu n'es pas oblige de t'en tenir aux valeurs sur le driver standard et tu n'es pas non plus oblige de forcer la vitesse.

C'est a mon avis le moyen le plus propre de faire, c'est aussi ce qui a ete fait pour la RF57-932. Le code existe donc deja, il suffit de l'adapter.

Non ?

Fool


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Juin 2009, 15:37 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
Fool-DupleX a écrit:
Si tu ecris un driver pour BASIC, tu n'es pas oblige de t'en tenir aux valeurs sur le driver standard et tu n'es pas non plus oblige de forcer la vitesse.

... mais si j'avais à choisir pour moi, je pencherai plutôt pour respecter le driver de la RF57 à la lettre. Ce qui n'est pas une mince affaire, avec toutes les options que propose l'interface...
Déjà, même avec la vitesse de 38400 bauds, j'ai encore le temps de faire quelques calculs et d'installer les boucles, bien que ce soit limite pour le handshaking. Donc des vitesses inférieures laisseront plus de marge, donc plus de confort pour la programmation et le loisir d'émuler un maximum d'options.

Fool-DupleX a écrit:
C'est a mon avis le moyen le plus propre de faire, c'est aussi ce qui a ete fait pour la RF57-932. Le code existe donc deja, il suffit de l'adapter.

Le code existe déjà, c'est vrai. Il suffirait d'aller le chercher dans la ROM du TO7 ou du TO7-70. Tout dépend après du degré d'adaptation du programme, puisqu'il faudrait en fait, je le répète, faire un driver moniteur pour une CC90-232 ayant les mêmes caractéristiques qu'un driver moniteur pour une RF57-932.

Ceci dit, j'ai fait quelques petits calculs avec les fameux compteurs proposés à l'adresse $E836 de tout TO. La première colonne contient le nombre de bauds, la deuxième contient le nombre de cycles pour un débit de transmission parfait, la troisième contient le nombre de révolutions dans une boucle du type LEAX -1,X/BNE *-2 aussi pour un débit de transmission parfait (boucle qui est utilisée dans le programme Moniteur de la CC90-232), la quatrième contient le compteur dans la table (donc choisi par les concepteurs) exprimé en décimal, et la dernière la différence notée entre le nombre de révolutions calculé et celui choisi par les concepteurs :

Code:
Bauds    Cycles          Révol.      Officiel     Différence
--------------------------------------------------------------------------------------
  110      9076.3636    1134,5454   1130      4,5454
  300      3328           416            411        5
  600      1664            208           202       6
 1200      832             104           98         6
 2400      416             52             46         6
 4800      208             26            21         5


Il y a évidemment à ajouter le temps que met le programme de traitement, mais même le total reste inférieur au temps nécessaire pour un débit exact. Qui plus est, la différence de révolutions change d'un compteur à l'autre, ce qui conforte dans l'idée que la précision n'était pas à l'honneur. La seule chose qui sauve l'efficacité de la transmission (et seulement entre deux TO7/TO7-70 pourvus d'une CC90-232) est que le programme d'emission est légèrement plus lent que le programme de réception, ce qui fait qu'après une détection correcte du bit de start, on reste (et même on s'enfonce un peu, ce qui est louable) dans l'intervalle de sécurité pour la lecture.

Il n'est donc pas préférable, effectivement, d'utiliser ce programme Moniteur tel quel pour un transfert vers une RF57-932 et encore moins vers un PC. Ce qui ne signifie pas que ça ne fonctionnerait pas, surtout dans les basses vitesses, mais ces derniers, l'un du fait de la rapidité de son horloge interne et l'autre du fait de sa rapidité pure, sont beaucoup plus exigeants par leur précision.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 07 Juin 2009, 06:06 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
Boaf ! Ca pourrait quand même fonctionner pour toutes les vitesses, vu qu'une transmission série se contente quand même de beaucoup d'approximation. Mais bon, je vais quand même faire quelque chose de plus précis, ça ne mange pas de pain.
On va donc assurer le minimum syndical : les vitesses du Basic 512 (110/300/600/1200/2400/4800/9600/19200 bauds), 7 ou 8 bits pour la taille et deux bits de stop. Voilà voilà :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 07 Juin 2009, 09:22 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
En tout cas, c'est vraiment bizarre comment ils utilisent le hanshaking sur le driver Moniteur du TO7. Le CTS et le RTS ne sont utilisés que pour la lecture de donnée, et aucun pour l'écriture. Alors que, conventionnellement, l'un est utilisé pour la lecture et l'autre pour l'écriture... Très unilatéral, comme méthode :L
... et comme, en plus, la lecture n'est pas bloquante, elle renvoie un $00 dans B au Basic si le flux d'entrée n'est pas prêt. C'est à se demander comment certains sont arrivés à faire communiquer deux TO7 avec ça (re :L)
L'entrée Moniteur du TO7/TO7-70 RSCO$ est de toute façon inutilisable telle quelle pour une transmission avec un PC.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 11 Juin 2009, 10:12 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
Alors deux bugs découverts (de plus?) dans le Basic 512 et qui concernent le pilote série :

1. La vitesse à 19200 bauds
Vous savez (ou vous ne savez pas) qu'il est possible de programmer par le Basic 512 les vitesses de 110 à 19200 bauds. Le paramètre vitesse est passé dans la ligne Basic introduite par OPEN en début de commentaire par un chiffre allant de 1 à 8, 8 représentant la vitesse de 19200 bauds. Le problème est que dans la table du pilote de la RF57-932, cette vitesse n'est pas répertoriée. N'ayant pas trouvé le compteur correspondant, le programme récupérera un code qui se trouve au début de la routine débutant en fin de table.
Une chance, sur le TO8D, ce code est $6F, $0F étant le code attendu. La vitesse sera donc correctement programmée, malheureusement en dépit d'une programmation correcte de la taille des données et du nombre de bits de stop. Sur le TO9+, par contre, le code trouvé est $02, et là, plus d'espoir.
Le seul moyen de demander proprement une vitesse de 19200 bauds est par le langage machine. Dommage :L

[EDIT] En fait, la table des correspondances n'est même pas supposée inclure la vitesse de 19200 bauds. La bonne valeur ne sera donc jamais ajustée automatiquement par le Basic, et le réglage contenu dans NOMBRE ($6046) sera pris par défaut. L'une des alternatives serait alors de poker dans NOMBRE le code concernant la vitesse avant d'ouvrir le périphérique COMM.

2. L'ouverture de COMM en mode direct
Le Basic 512 est visiblement supposé pouvoir ouvrir le périphérique COMM en mode direct. En tout cas, il le tolère, ce qui permettrait de transférer des données en dur (Super! C'est justement ce que je voulais!). Mais, outre le fait que l'utilisation des instructions GET et PUT puisse faire bugger le TO, le problème est qu'une nouvelle tentative d'ouverture en mode direct, même après un CLOSE, affiche l'erreur "Device In Use". Le programme déclare pourtant le périphérique fermé dans sa table de périphériques, mais le registre d'ouverture spécifique au port série reste en mode ouvert. Ce qui rend le périphérique désormais inutilisable.
En fait, le programme qui gère ce registre est celui qui s'occupe de la fermeture des périphériques autres que la cassette et le lecteur de disquette, comme KYBD, SCRN, LPRT... et qui ne s'ouvrent qu'en input ou en output (ils sont bridés à l'ouverture). Les concepteurs ont sans doute oublié qu'ils avaient autorisé l'ouverture du port COMM en mode direct puisqu'ils masquent, en guise de fermeture, seulement les bits qui concernent l'ouverture en output et en input : le bit concernant l'ouverture en mode direct reste inchangé.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 42 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

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com