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

C++Builder Discussion :

Exception 'instruction privilégiée' avec TDLPort


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Exception 'instruction privilégiée' avec TDLPort
    Bonsoir,

    j'ai un petit probleme d'exception des que je demande une lecture sur le port parallele alors que j'ai juste fait des copier collé du tutorial de V.Petit

    http://petit.developpez.com/parallel...tio/index.html


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Parallele1->OpenDriver ();
    Parallele1->WritePort(0x37A,0x20);  //Port en lecture
     
     if (Parallele1->GetPin(10)) //Si +5V sur la broche 10 donc /ACK
         Edit1->Text="Le montage externe à mis un état haut sur /ACK";
       else
         Edit1->Text="Le montage externe à mis un état bas sur /ACK";
     
    Parallele1->CloseDriver (); //Driver fermé;
    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Quelle version de Windows et quelle version de BCB ?
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bonjour ,

    Déjà merci pour ces composants TComPort et TDLPortIO c'est vraiment génial depuis le temps que je cherché quelque chose d'aussi simple a mettre en oeuvre et d'aussi complet. C'est vrai SUPER votre boulot !

    Donc j'ai windows XP Pro et BCB6, et sinon les autres fonctionent sans probleme comme WritePort() et ReadPort().


    Merci encore

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    C'est vrai SUPER votre boulot !
    Ca c'est gentil, je te remerci

    Vous dites que les fonctions WritePort() et ReadPort() fonctionne et apparemment pas GetPin().

    Lorsque vous faites du pas à pas sur quelle ligne de code, l'exeption se produit elle ?

    Dans votre BIOS pouvez vous me dire comment est votre Port LPT (sur EPP, ECP ??)

    J'attends votre réponse.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Alors le port LPT est en mode EPP+ECP, j'ai deja essayé en mode EPP et c'est toujours le meme probleme.

    Vous dites que les fonctions WritePort() et ReadPort() fonctionne et apparemment pas GetPin().
    Oui c'est ca.

    En mode pas à pas c'est sur le GetPin() que l'exception se produit.

  6. #6
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    La dll est bien avec l'application ou dans C:\Windows\...\System ? et le .sys dans C:\Windows\...\System32\Drivers ?
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Oui, dll dans le repertoire de l'appli et dans le repertoire system et le .sys dans Drivers.

    Merci pour le coup de main

  8. #8
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Avez vous tous les droits sur ton PC ? Vous n'avez pas de réstrictions ?

    Une instruction privilégiée est causé quand on est en mode utilisateur, on a pas accès à toutes la zone mémoire. Et pour avoir l'accès a toute cette zone mémoire il faut être en mode superviseur et là les instructions privilégiées sont accèptées !

    (Je ne suis pas sur de ce que j'avance mais je pense que c'est ça)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Sur mon windows il n'y a qu'un utilisateur donc je suppose que je suis en mode superviseur par defaut.

    J'ai accès a tout installation de logiciel, matériel etc ...

    Pas d'autres idées ?

  10. #10
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Je pense avoir trouvé ! il me faut votre adresse e-mail.
    Avec TDLPortIO, la version complète que je ne donne pas sur mon site, il y a une application nommé "install". Est celle ci inscrit le .sys dans le Device System Manager et un simple copier / coller de ce .sys ne suffit pas sur les Windows couches NT (NT, 2k, XP).

    Maintenant je sais pourquoi tant de personnes sont embêtées avec ce composant sous XP, NT etc... Moi je n'ai que Win98SE donc je n'ai jamais pu essayer.

    Bon ne nous réjouissons pas trop vite. Il me faut votre adresse e-mail.
    J'attends votre réponse
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Pas de changement toujours le meme probleme

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Salut a vous,
    je suis dans le meme cas que jphi5...(Win2000,BCB6)
    On m a dit que cela venait du composant "DLPrinterPortIOXControl_OCX.cpp" et que sous NT, il fallait utiliser les composant "DLPortIO.cpp" et "TDLPortIO.cpp"??? je ne sais pas si c est la meme chose pour 98, mais apparement pas.

    Toute fois, j ai remarque que je n ai pas les meme erreurs avec les deux composant, mais je n arrive pas a les faire fonctionner......

    Si vous avez une soluce, merci de me la faire partager

  13. #13
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonsoir,
    mauvaise nouvelle pour les utilisateurs de ce composant
    il ne fonctionne malheureusement pas sous Win2000 et XP
    mais par contre très bien sous NT4
    l'erreur est due à la détection des ports LPT
    sous Win2000 ainsi que sous XP la détection est faite via enumération Plug-And-Play
    je me propose de réerire la routine de détection de port dés que j'uarsi un peu plus de temps

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bonsoir DjmSoftware,

    Mais c'est marrant que read() write() fonctionnent et pas Getpin() ?

    Et sinon il existe d'autre maniere d'acceder au port LPT ?

    J'ai vu qu'on pouvait utilisé readfile() et writefile() ou alors changé le driver du port dans le 1er cas je n'ai pas encore trouvé de site clair qui expliqué comment faire et dans le 2eme, pas genial si on veut difuser l'application.

  15. #15
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Fait une recherche sur le forum "GiveIo.dll" ou quelques chose comme ça
    cf: ChMerlier, c'est une alternative à DLPortIO.

    Merci pour l'info DjmSoftware, je ne savais pas que l'on ne pouvez pas l'utiliser sous WinXP ni 2k. Je l'avais essayer sur BCB5 et BCB6.

    Je le préciserai sur le tutoriel.

    C'est bien dommage car ce composant est bien utile et facilite pas mal les choses.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Salut,
    Citation Envoyé par DjmSoftware
    l'erreur est due à la détection des ports LPT
    sous Win2000 ainsi que sous XP la détection est faite via enumération Plug-And-Play
    Dans les options du port parallele (win2000), il est posible de choisir si les LPT sont Plug'n play... Cette option ne permettrait pas de faire fonctionner le composant DLPortIO???

    Bonne journée à tous

  17. #17
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut.
    malheureusement non,
    dans la détection de port de ce composant les clés de regstry sont hardcodés
    le principe est totalement différent sous w000 respectivement XP
    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Salut,
    Je te remercie pour ces infos.
    Merci de me tenir au courant si tu as du nouveau au sujet de ce composant.
    De mon coté, je vais chercher si il existe d'autre composant qui permettent d'aller taper sur les LPT.....

    Merci de ton aide

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    je me propose de réerire la routine de détection de port dés que j'uarsi un peu plus de temps
    Merci déjà ! En espérant que tu auras vite du temps libre

    Et ensuite je n'ai pas tout compris à tes explications (c’est normal) mais c'est pas un peut bizarre que la lecture et l'écriture sur les 8bits D0-D7 fonctionne et pas sur les autres ???

  20. #20
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    J'ai le même problème et je suis avec C++B6 et WIN2K.
    Quelqu'un a t'il la solution aujoud'hui ?


    Merci d'avance

    Alex01

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Exception d'application avec EPrinter
    Par Masmeta dans le forum C++Builder
    Réponses: 14
    Dernier message: 12/12/2006, 15h21
  2. Gérer les exceptions de download avec idHTTP
    Par PimpW dans le forum Delphi
    Réponses: 2
    Dernier message: 17/08/2006, 10h23
  3. Instruction EXECUTE avec paramètres
    Par @n@kin.be dans le forum PostgreSQL
    Réponses: 17
    Dernier message: 19/06/2006, 11h07
  4. [CR] instruction If avec deux opérations
    Par MaDmAtT dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 19/07/2004, 13h54
  5. VC++, assembleur et instruction privilégiée
    Par Michel Devaud dans le forum MFC
    Réponses: 5
    Dernier message: 19/09/2003, 09h12

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