IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Byte de sortie sur port parallele non maitrisé


Sujet :

Web & réseau Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut Byte de sortie sur port parallele non maitrisé
    Voila, je suis en train de développer une application avec Delphi2005 qui fonctionne avec Windows95 sur un vieuxPC
    et j'ai quelques petits soucis ou phénomèmes non maitrisés
    Merci d'avance pour les conseils qui viendront (je n'en doute pas)

    Derrière le port parallele ,l'application génère des bytes de sorties sur une carte électonique.


    Question 1
    Lors du démarrage du PC, toutes les sorties sont activées à 1 quelques sec; y a t-il un moyen pour éviter cela car dérrière je me retrouve avec des commandes non souhaitées voir dangereuses (pour le matériel)

    Question 2; à la fin de la procédure de démarrage de Windows, j'ai le byte 4 qui revient et reste. Est-ce normal ? Y at-il une parade?

    Question 3: Maintenant un problème au niveau du programme, l'appui sur un bouton d'une fiche rend invisible cette fiche et en rend visible une autre
    Voici le code du bouton (rien de plus simple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.BtmanuClick(Sender: TObject);
    begin
    Form1.visible:= false;
    Form2.visible:= false;
    Form4.visible:= true;
    end;
    Le probleme, c'est que cette action fait comme si j'agissait sur la commande d'un bouton de la fiche devenue visible . Or, rien n'est écrit pour cela ????
    ci aprés le code "exécuté" (sans ordre) à chaque fois qu'est actionné ce bouton TForm1.BtmanuClick(après être revenu sur la fiche intiale) le
    Je précise que c'est apparu subitement lors de tests de progression de cette application (je suppose que j'ai du faire quelquechose mais quoi ??)
    En fait le code d'un bouton est executé par la commande d'un autre ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm4.Btmarche_circ_atelClick(Sender: TObject);
    begin
    Btarret_circ_atel.Enabled:=true;
    Btmarche_circ_atel.Enabled:=false;
    Btmarche_circ_atel.visible:=false;
    cde:=cde+4; // c'est la valeur des bytes de sorties
    Affcde.caption:=Inttostr(cde);
    PortOut ($378,cde);
    Affmarche_circ_atel.visible:=true; // pour mettre en évidence la commande
    end;
    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Je suis très surpris de ne voir aucune avis sur le sujet, je me permets de réhitérer la demande à mon probléme pour les points 1 et surtout 2
    En ce qui concerne le 3, il s'agisait 'dune erreur d'écriture de ma part donc point 3 résolu
    Merci d'avance

  3. #3
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    748
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 748
    Points : 500
    Points
    500
    Par défaut
    Salut ,

    Sur des questions comme la tienne un peu plus d'info est importante!

    1°si je comprends bien , ton code marchait sur Win95 et tu essayes de le migrer sous delphi 2005 ?

    2° ensuite je pense que l'OS que tu utilises est WinXP ?

    3° donc si tu es sous Xp , tu dois utiliser un "driver" pour le port // , lequel est ce?

    4° tu utilises bien le bus de data sur ton port // et pas des bits de controle ?

    Voila le genre d'info qui deviennent utiles dans ton probleme pour pouvoir imaginer ton probleme .

    bye

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Voici quelques précisions :
    Je développemon programme avec Dephi 2005 sur un PC équipé de WinXPpersonnel
    Je transporte le programme en .exe sur le PC équipé de win95 pour l'utilisation.
    Le dialogue avec les sorties du port // se fait par une petite procédure en assembleur qui donne directement de bytes de sortie 0 à 255
    Je ne teste pas le programme sur le PC qui me sert à développer car WinXP n'accepte pas d'utiliser directement le port // . Aucune importance car l'application est utilisée avec win95 qui accepte l'utilisation direct du port //
    En ce qui concerne le point 1, je suppose que lors de la phase de démarrage du PC un test se fait sur les ports ?? durée 2 à 3 sec .Je peux le comprendre bien que cela me gène car les actionneurs en aval sont tous commandés en même temps (certains sont inverses des autres du genre sens moteur)(heureusement que électriquement, j'ai verrouillé ce cas de figure)
    Le point 2: je ne vois pas pourquoi 1 sortie (byte 4) devient actif pendant la phase de démarage de Win95 .Le programme à ce stade n'est pas en application, il est mis par lancement (manuel du programme .exe)

    Le point 3 marchait bien et après quelques modifications améliorations ,le probléme en question est apparu (Je suppose que j'ai du placé quelque chose qui ne fallait pas ??).
    J'ai pu le régler en réécrivant complétement le code (sans pour autant savoir pourquoi)

    Résumé: peux t-on éviter de lancer le byte 255 pendant 2 sec sur les sorties du port // au démarrage du PC ?
    Peux t-on éviter de lancer le byte 4 pendant la phase de démarrage de Win95 ?

    Merci d'avance

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    question 1 et 2
    Sur la connexion à la carte électronique, est-ce que tu utilises seulement les 8 bits de data de la sortie parallèle ou aussi le strobe qui est censé indiquer qu'il il y a une nouveau caractère à traiter ?

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Rebonjour,

    A essayer éventuellement : changer dans le bios le parallel port mode en mode SPP.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    La carte électronique est connectée sur le port // uniquement par les 8 broches de sorties
    Je vais essayer d'aller faire un tour dans le Bios mais ?? ;connait pas du tout !
    Quelques précisions me seraient bien utiles

  8. #8
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    748
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 748
    Points : 500
    Points
    500
    Par défaut
    salut ,

    Que les datas du port // bouge quand tu met le pc en route est normal et je les ai meme vu bouger alors que je n'ecrivais rien sur le port !! donc il y avait bien des actions faites sur le port // directement lier a windows.

    En general ceci est pas très genant car pour agir sur des systemes externes l'etat des datas devraient êtres validés par d'autre(s) signaux du port // ( strobe.. ) .
    Ce qui ne semble pas le cas dans ton application ( d'apres ce que j'ai compris ) et qui a mon avis peut etre dangereux en fonction des actions qui peuvent etre executées .

    je n'ai pas de solutions toutes prettes a te donner comme çà , mais juste des pistes qui pourrai peut etre d'aider ..

    1) Etre sur que ton application a fonctionnée un jour sans les soucis que tu nous indique ? car si c'est pas le cas peut etre qu'il faut aussi chercher ailleur que dans ton code .

    2) Etre sur que l'interface entre le pc et tes systemes externes ( moteur.. verin .. ) est bien utilisée ? . Que l'interface n'utiliserai pas un bit de controle du port // pour le controle d'envoie des datas qui ne serai pas gerer ou bien mal initialiser et qui rendrait les datas toujours valide ?

    Bye !

  9. #9
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    je sais pas si sa peut t'aidé
    pourqoi pas utilisé un buffer du genre 74255 (si ma mémoir est bonne ou 74544 je sait pas exactement) avec un monostable qui détecte le démmarage du poste et qui ne donne accée (avec 255) qu'aprés un certin temp
    par example une porte AND de 8 bits (comme tu as dit que le port // a tt les bits a 1 au démarage) pour détecté le démarage

    bon dev

  10. #10
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    ALORS ?????????????????????

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Je n'ai pas su explorer le Bios si quelqu'un pouvait me conseiller?
    En fait, je voudrais faire en sorte que window n'envoie rien sur le port // ni au demarrrage du PC , ni au démarrage de Window 95
    L'application fonctionne bien et envoie le bytes sur le port // correctement

    Si je ne trouve pas de solution , effectivement je rajouterai un composant que me donnera accés à la carte électronique connectée sur le port // seulement au lancement de l'application (mais il faudra refondre complétement ma carte électronique!!)

  12. #12
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Pour entrer dans la configuration du Bios, appuie sur la touche "Suppr" au boot, puis explore les menus et je pense que tu trouveras dans qqchose comme I/O config ou peripherals setting une ligne pour "parrallel mode" avec 2 ou 3 options : SPP, EPP, ...

    Essaie ces différents modes (faire ESC, puis F10 pour sauvegarder la nouvelle config bios).

  13. #13
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Rebonjour,

    Sinon 2 idées :
    1) désinstaller l'imprimante éventuellement connectée sur le port parallèle,

    ou bien :
    2) ajouter une carte (10 à 15 € de mémoire) pour un deuxième port parallèle.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    j'ai essayer les diverses options sur leport paralléle
    SPP
    EPP+SPP
    ECP
    ECP+EPP
    il n'y a aucune différence. dans tous les cas les 8 sorties s'activent 2-3 sec au démarrage puis la sortie 4 s'active et reste active.
    ll n'y a rien d'autre sur le port // le seul port // du PC est connecté sur ma carte électronique

  15. #15
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    748
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 748
    Points : 500
    Points
    500
    Par défaut
    salut ,
    tu sembles avoir epuisé toutes les possibilitées soft , peut etre que tu peux agir aussi sur le hard :

    Si tu peux agir sur ton interface , je pense que ton port // pilote des relais qui eux memes pilotes d'autres organes de commandes .. , donc soit tu peux :
    - Temporiser la source d'alimentation des relais qui sont pilotés par le port // pendant les quelques secondes de demarage du pc
    - Rajouter un relais qui pilote cette source d'alimentation et le commander via le port // avec des une combinaison de bits de données et de controle .

    bye

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Bon , je vais devoir verrouiller le probléme par du hard et donc refaire ma carte

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. out et in sur port parallele
    Par ieee dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 25/02/2008, 10h15
  2. Réponses: 4
    Dernier message: 20/09/2006, 14h08
  3. Lire le status d'une imprimante sur le port parallèle
    Par narmataru dans le forum Linux
    Réponses: 16
    Dernier message: 21/11/2005, 14h43
  4. Réponses: 3
    Dernier message: 10/10/2005, 18h30
  5. precision sur le pilotage du port parallele
    Par fransouik dans le forum C++Builder
    Réponses: 18
    Dernier message: 26/02/2004, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo