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 :

Affichage de la conversion d'un ADC


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut Affichage de la conversion d'un ADC
    Bonjour à vous,

    Dans le cadre de mon boulot , je dois réaliser une interface d'affichage. Je dispose d'un PSoC que je dois programmer pour afficher le résultat de la conversion d'un ADC sur 8 afficheurs 7 segments. Le truc c'est que j'ai un PSoC qui joue le role de DAC et un autre PSoC qui joue le role de gestion des afficheurs. Pour que les 2 composants communique, j'ai réalisé une communication SPI , qui m'envoie ne peut envoyer qu'un seul caractère à la fois. Une fois la conversion d'une tension terminer je reçois 2 caractères, a présent je dois donc calculer la valeur correspondante, je fais donc :

    Donnee_affichable=((Data_Rx_MSB)*256)+Data_Rx_LSB;

    Le soucis est que je dois mettre cette meme valeur " Donne_affichable" dans un tableau pour que je puisse l'afficher ensuite sur mes afficheurs 7 segments. Mais comment faire cela ?

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Hum...

    Quel est le type de Donnee_affichable ?
    Pour char :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char tab[1];
    [...]
    tab[0] = ((Data_Rx_MSB)*256)+Data_Rx_LSB;
    Ai-je mal compris ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut well well
    Hola todos

    J'ai mis :

    unsigned int Donnee_affichable;

    mais je n'en suis pas sur! Le truc c'est que je reçois 2 caractère , le MSB et le LSB de ma conversion et après je dois afficher ce résultat sur mes 4 afficheurs 7 segments , du coup ma conversion peut aller de 0 à 4096 ( en fait je reçois de 0x000 à 0xFFF de mon ADC, et je reçois ça en 2 fois avec ma communication SPI ). Devrait donc y avoir 4 cases complétées à mon ce tableau :

    Donnee_affichable[0]=(((int)Data_Rx_MSB)*256)+(int)Data_Rx_LSB;
    Donnee_affichable[1]=(((int)Data_Rx_MSB)*256)+(int)Data_Rx_LSB;
    ...
    Donnee_affichable[4]=(((int)Data_Rx_MSB)*256)+(int)Data_Rx_LSB;

    Me fais je bien comprendre ? lol

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut J'étais pas clair précédement
    Pour faire simple , je fais :

    Donnee_affichable=(((int)Data_Rx_MSB)*256)+(int)Data_Rx_LSB;

    Donee_affichable est un unsigned int , je pense pas trop mettre planté. Imaginons que Donnee_afichable donne 1234 , je voudrais faire un tableau avec : int tab[0] = 1 ;
    int tab[1]=2; int tab [2]=3 et int tab[3]=4;

    Je veux juste mettre mon résultat dans un tableau ...snif faut pas se moquer !

    C'est tout con ce que je veux faire mais je me prends tellement la tête que j'arrive plus à rien !

  5. #5
    Membre éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Par défaut
    Hello !

    Pour cela utilise simplement une division entière (div) et un modulo (%)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int tab[4];
    tab[0] = Donnee_affichable div 1000;
    tab[1] = (Donnee_affichable % 1000) div 100;
    tab[2] = (Donnee_affichable % 100) div 10;
    tab[3] = (Donnee_affichable % 10);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut OUaah merki la grande classe
    Bonjour,

    Merci beaucoup , ça marche dit donc !
    Je vais pouvoir aborder mon deuxième problème maintenant qui est que j'arrive pas à faire un bon affichage sur mes afficheurs 7 segments. L'affichage est beaucoup trop faible , j'ai donc pensé ( et oui je pense des fois ) que ma vitesse de multiplexage était trop rapide mais quand je me met à la limite du clignotement de l'affichage mon affichage reste très pale. D'ou peut provenir cela ? sachant que mon maitre de stage m'a montré son prog qui lui fait un affichage top la classe !

    Lol , c'était aussi pour éviter de faire un nouveau sujet !

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/04/2007, 17h04
  2. Conversion d'un ADC
    Par themacprod dans le forum C
    Réponses: 2
    Dernier message: 18/04/2007, 18h28
  3. [MySQL] affichage après conversion htmlentities
    Par mims1664 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/03/2007, 13h22
  4. Conversion HEXA -> ASCII pour affichage LCD
    Par MarcO_- dans le forum C
    Réponses: 11
    Dernier message: 03/03/2007, 17h47
  5. [JSP] conversion/affichage d'un texte en html
    Par astrofiles dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 22/02/2006, 16h23

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