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 Discussion :

Aide pour projet avec carte asi candibus


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 37
    Points : 23
    Points
    23
    Par défaut Aide pour projet avec carte asi candibus
    Bonjour,
    actuellement en 2ème de bts iris, en ce moment je suis en projet, je dois faire l'acquisition de la tension à l'aide de la carte isa et de son extension candibus, afficher cette tension à l'écran, j' ai fais un programme en c avec visual c++6 mais il n'affiche pas la valeur que je lui met, voici le programme en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    #include <time.h>
    #include <windows.h>
    main()
    {
     
    char x280,x281; // x280 contient valeur des 8 premiers bits et les
                            //    4 derniers bits
     
    int val,val1,tension;
    //clrscr();
    printf("Programme lecture\n");
     
    _outp(0x280,0xDE);
    x280=_inp(0x280);      //adresse de la carte qui lit les 8 premiers bit
    x281=_inp(0x281);     //    "                                     "4 derniers bit
    int sleep Time=5;	// pour attendre 5s avant de faire l'acquisition									
    printf("tempo\n");
    printf("lecture: %X : %X\n",x280,x281);
    val=(16*(int)x280)/16;                          //
    printf("valeur de val:\t%X\n",val);          //    conversion que fait la carte 
    val1=(int)x281/16;                                //    pour obtenir la tension
    printf("valeur de val1:\t%X\n",val1);       //
    tension=(5,12*tension)/(4095-10,24);     //
    printf("\n tension candibus:%d\n",tension);
     
    getch();
     
    }
    Merci d'avance pour votre aide .

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    (Ah, le BTS iris, ça rappelle des souvenirs...)

    Quel est ton système d'exploitation?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    #include <windows.h>
    Quel est ton système d'exploitation?
    Ca doit être windows
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    OK, je reformule ma question ad usum asini:

    Quelle est ta version de Windows ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Aide pour projet avec carte asi candibus
    Citation Envoyé par sinicha
    actuellement en 2ème de bts iris, en ce moment je suis en projet, je dois faire l'acquisition de la tension à l'aide de la carte isa et
    Les PC actuels n'ont plus de carte ISA... Ca doit être une vieillerie
    de son extension candibus, afficher cette tension à l'écran, j' ai fais un programme en c avec visual c++6 mais il n'affiche pas la valeur que je lui met, voici le programme en question:

    char x280,x281; // x280 contient valeur des 8 premiers bits et les
    // 4 derniers bits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /* -ed- il vaut mieux mettre unsigned char ou unsigned int. */
    val=(16*(int)x280)/16; //
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* -ed- il faut apprendre à utiliser les opérateurs bit.... (|, << etc.) */
    val = x280 | (x281 << 8 );
    printf("valeur de val:\t%X\n",val); // conversion que fait la carte
    val1=(int)x281/16; // pour obtenir la tension
    printf("valeur de val1:\t%X\n",val1); //
    tension=(5,12*tension)/(4095-10,24); //
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* -ed- Ben non... */
    tension=(5,12*val)/(4095-10,24);
    La méthode d'accès directe au matériel qui était possible sous DOS/Windows (au prix de manips système démentielles et malgré les recommandation de Microsoft qui dit, depuis l'apparition de Windows (90) "ne faites pas comme ça, utilisez un driver") ne l'est plus sous Windows NT (Oui, XP est un NT).

    Ben oui, il fallait bien que les pratiques douteuses s'arrêttent un jour. Maintenant, il faut passer par un driver. On a eu 15 ans pour s'adapter, ça devrait aller...
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Le problème, c'est qu'en cours d'architecture, on nous apprend le matériel à bas niveau, et qu'il faut bien nous apprendre à y accéder.

    Et faire un programme qui y accède directement est moins compliqué que développer carrément un driver...

    J'ai posé la question de la version de Windows pour m'assurer que sinicha ne tourne pas sur un NT (on déjà vu ça sur le forum: Les profs actualisent les ordis sans actualiser les sujets...)

    PS: Pour multiplier/diviser par 16, on décale de 4, non ? (au lieu de 8)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    [...] J'ai suivi le même cursus, alors il me reste pas mal de souvenirs.

    On avait droit à du Win98se pour les accès à bas niveau, et pour Visual, il nous fallait désactiver les optimisations sur tout fichier source qui utilisait inp/outp, sinon ça foirait en mode Release. ( sinicha, pense-z-y ! )

    PS sinicha: Désolé, je n'ai pas étudié ces cartes-là, je ne peux donc pas te dire ce qui est bon ou non... Mais comme le souligne Emmanuel Delahaye, il y a quelques problèmes dans tes calculs: Utilise plutôt les opérateurs de manipulation de bits, qui sont là pour cela.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Médinoc
    Le problème, c'est qu'en cours d'architecture, on nous apprend le matériel à bas niveau, et qu'il faut bien nous apprendre à y accéder.
    Ok, mais il faut utiliser les bonnes méthodes. Une appli qui accède au hard directement, c'est le moyen age. On a jamais fait ça sous aucun système sérieux (à part DOS/Windows). Il faut toujours passer par un driver.
    Et faire un programme qui y accède directement est moins compliqué que développer carrément un driver...
    Tu fais ce que tu veux, mais ne t'étonne pas si ça ne fonctionne pas sous XP. Tu es prévenu. Si ton prof ne sait pas ça, il est temps de le recycler...

    PS: Pour multiplier/diviser par 16, on décale de 4, non ? (au lieu de 8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MSB------|------------LSB
    11 10 9 8 7 6 5 4 3 2 1 0
    Si on veut que les bits de poids faible actuellement en 3-0 se retrouvent en 11-8, il faut bien décaler de 8 à gauche.

    Je ne sais pas qui veut multiiplier par 16, en tout cas, c'est pas moi...
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je ne sais pas qui veut multiiplier par 16, en tout cas, c'est pas moi...
    C'est bizarre, moi, je n'ai vu pratiquement que des /16 et des *16 dans le code de sinicha...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Médinoc
    Je ne sais pas qui veut multiiplier par 16, en tout cas, c'est pas moi...
    C'est bizarre, moi, je n'ai vu pratiquement que des /16 et des *16 dans le code de sinicha...
    Ben oui, mais c'est faux. Moi je propose de décaler de 8 à gauche. ( x 256 je suppose, mais qu'importe, les maths, je ne connais pas!, et ici on a pas un problème de math mais de champs de bits)

    Donc je n'ai pas compris ta remarque :
    Citation Envoyé par Médinoc
    PS: Pour multiplier/diviser par 16, on décale de 4, non ? (au lieu de 8 )
    Pas de Wi-Fi à la maison : CPL

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ah, oui, je n'avais pas vu que le calcul lui-même était faux...
    En effet, les multiplications/divisions par 16 n'ont rien à faire ici...

    En fait, il s'agisait juste de concaténer deux octets... (en l'occurence, là, j'aurais directement fait un _inpw(0x280) puisque ça correspondait parfaitement, mais bon)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 37
    Points : 23
    Points
    23
    Par défaut Aide pour projet avec carte asi candibus
    Salut,
    je suis sous windows 98 en fait pour tout vous dire j'ai repris ce programme d'un élève de l'année dernière qui utilisais la même carte.
    Merci de votre aide

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 37
    Points : 23
    Points
    23
    Par défaut Aide pour projet avec carte asi candibus
    je souhaiterais savoir à quoi sert _inpw(vc++6) ou inpw(TC).

  14. #14
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Aide pour projet avec carte asi candibus
    Citation Envoyé par sinicha
    je souhaiterais savoir à quoi sert _inpw(vc++6) ou inpw(TC).
    A lire 16 bits d'un coup.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Besoin d'aide pour projet woocommerce avec Mystile
    Par en_dehors dans le forum E-Commerce
    Réponses: 0
    Dernier message: 05/11/2014, 12h18
  2. Aide pour Projet C (Timer avec 2 moteurs)
    Par fredericbdr dans le forum Débuter
    Réponses: 4
    Dernier message: 03/02/2010, 16h51
  3. [Dev-C++] Aide pour programmer avec Qt 4
    Par stone dans le forum EDI
    Réponses: 3
    Dernier message: 02/02/2006, 08h58
  4. [W3C] aide pour html avec mozilla et netscape
    Par teambeyou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 06/09/2005, 20h30
  5. Aide pour projet : schéma & SGBD
    Par Grubshka dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 11/04/2005, 16h50

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