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 :

Porblème communication entre interface C++ et microcontroleur


Sujet :

C

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Porblème communication entre interface C++ et microcontroleur
    Bonjour,

    J'ai une interface C++ qui envoie un code multiple de 5 sur RS232. Il y a 72 codes qui correspondent chacun à un nombre de pas à effectuer à un moteur.


    Le microcontrôleur (programmé avec AVR Studio 4) reçoit ce code.
    Je sais que je le reçois bien quand je teste avec un code "manuellement".

    Le problème c'est qu'il faudrait tester 72 fois ce code pour trouver la bonne affectation du type :

    if (code==72)
    {
    nbpas=400;
    tourner();
    }

    J'ai donc essayé de faire un calcul du type

    nbpas= code*5*400/360 //conversion en nbpas

    sachant que je doit avoir un entier j'ai essayé de mettre floor(), ceil() mais rien ne marche, je n'ai pas le bon nombre de pas.

    Avez-vous une idée pour m'éviter de tester 72 fois le code?

    Merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Kacy_Bil Voir le message
    nbpas= code*5*400/360 //conversion en nbpas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbpas = double(code) * double(5) * double(400) / double(360);

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    ça ne marche pas et AVR met une erreur sur les "double".

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Si je comprend bien, tu as un code entre 0 et 72 (correspondant sans doute à des rotations de 0° à 5*72 = 360°). Pour une rotation complète (code = 72) , tu dois faire un nombre de pas égal à 400.
    Le nombre de pas pour un code est bien alors (nbpas et code sont deux entiers positifs), si la relation est linéaire
    nbpas= code*5*400/360 = code*50/9
    Ce qui donnera une valeur arrondie à la valeur égale ou inférieure (code/9*50 ferait un arrondi plus grossier).
    Pour avoir un arrondi à la valeur la plus proche, on peut faire nbpas= code*50.0/9.0+0.5

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    ça a l'air de très bien marcher.

    Merci beaucoup pour ton aide

Discussions similaires

  1. Problème de communication entre interfaces VB6
    Par VBAG38 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/12/2012, 14h27
  2. communication entre interface et mfile
    Par shun_light dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 13/10/2011, 11h25
  3. [Débutant] communication entre interfaces graphiques
    Par abdousoft dans le forum Interfaces Graphiques
    Réponses: 17
    Dernier message: 14/06/2011, 03h56
  4. communication entre des interfaces
    Par pedro22926 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 24/04/2010, 16h51
  5. [EJB3 Entity] Communication d'info entre interfaces locales
    Par maparè dans le forum Java EE
    Réponses: 1
    Dernier message: 08/03/2010, 11h29

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