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 :

signal carré sur port //


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1
    Points : 2
    Points
    2
    Par défaut signal carré sur port //
    :o
    bonjour à tous, (langage C, c++)

    je voudrais savoir si il existe une fonction faisant office de temporisation en C, C++ (je pense à sleep(x seconde) de conio.h ou conio.c ? oui/non)


    but créer un signal carrée sur le port // et sur le bit 0
    si j'envoie un etat logique "0" suivit d'un "1" sur le port parallele et une boucle infini, j'ai bien un signal en sortie et de fréquence max de 70Khz!! mon signal ne peut pas dépasser cette fréquence puisque j'execute à la suite la commande oup32(0x378,0x00); oup32(0x378,0x01);...ainsi c'est le bit 0 qui est utilisé. On a à l'oscillo un beau signal periodique carré. Pour ajuster la fréq à une valeur choisie, je place des tempo!..mais comment connaitre parfaitement le temps de pause si je n'utilise pas des fonctions dédiée?..et enfin que puis-je faire pour augmenter la fréq de mon signal?...changer de pc, de compilateur, de chipset...est ce liée à la DLL input32.dll.

    merci d'avance


    [Message édité par Loulou24, merci de ne pas abuser des couleurs]

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Y'a Sleep (S majuscule) de <windows.h>. Sleep permet de demander 1 ms de pause, mais Windows n'est pas tps réel et il est difficile d'avoir une précision inférieure à quelques ms (multitâche oblige). En monopolisant le CPU (pas d'autres process que le tient, priorité élevée...) tu peux en jouant sur un truc genre l'instruction RDTSC obtenir mieux. Tu es limité à 70KHz (ce qui est déjà pas mal), peut être à cause du controlleur parallèle, sûrement à cause de input32.dll car c'est un driver et chaque oup32 provoque un switch user / kernel mode et c'est très couteux. Y'a pas tellement mieux car les accès aux ports sont interdits sous NT, il faut passer par un driver. Tu peux essayer cette dll:
    http://www.internals.com/utilities/winio.zip
    qui est censée être optimisée.
    Le mieux c'est une carte PCI spécialisée.

  3. #3
    Membre habitué
    Profil pro
    Enculeur de mouches
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Enculeur de mouches

    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Tu es limité à 70KHz (ce qui est déjà pas mal), peut être à cause du controlleur parallèle, sûrement à cause de input32.dll car c'est un driver et chaque oup32 provoque un switch user / kernel mode et c'est très couteux.
    Effectivement, le port // rique d'avoir une limite fixée en fréquence... Je crois avoir lu quelque chose du goût dans un bouquin, mais pas moyen de mettre la main desuus, il a du rester à Brest...
    Passer outre le multi tâche : un moyen serais de coder un "OS" en assembleur sur le boot sector d'une disquette, un autre de coder sous MS-DOS. Mais ça fait un peu cher du circuit oscillant...
    Le pb avec avec le multi-tâche, c'est que la fréquence peut toujours varier d'une demi-période à l'autre...

    D'où:
    Citation Envoyé par Aurelien.Regat-Barrel
    Le mieux c'est une carte PCI spécialisée.
    Ou un p'tit montage RC avec un AmpliOp pour le seuillage
    Comment ça c'est pas "soudez.com"
    Gaïa n'est pas une marchandise.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/07/2012, 17h46
  2. Réponses: 7
    Dernier message: 14/02/2009, 10h24
  3. Compatibilité clé usb 2.0 sur port usb 1.0 de mon portable?
    Par coubi64 dans le forum Périphériques
    Réponses: 2
    Dernier message: 22/10/2003, 18h57
  4. [TP]Impression sur port USB
    Par haypo dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 18/07/2003, 11h09
  5. [UDP][Socket] perte de paquets et arret d'ecoute sur port
    Par Guismo1979 dans le forum Développement
    Réponses: 6
    Dernier message: 02/01/2003, 12h13

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