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 :

[Programmation PIC] Création d'un tableau à remplissage automatique


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut [Programmation PIC] Création d'un tableau à remplissage automatique
    Bonjour,

    Le but de ma demande est d'afficher sur un LCD 4x20 les 4 dernieres heures ou un bouton poussoir à été enfoncé.

    Mon programme actuel est capable de stocker dans un buffer temporaire appelé "current_time" , l'heure précise à laquelle un bouton poussoir à été appuyé.

    Je voudrai constituer une liste ( tableau ) contenant 4 buffers : E1,E2,E3,E4 qui seraient rempli par la valeur de current_time à chaque fois qu'un bouton poussoir est appuyé.

    (Je sais détecter lorsque un BP est appuyé et gérer l'affichage des buffers sur le LCD)

    Mon problème se situe au niveau du stockage de la donnée "current_time" dans le tableau à chaque fois qu'un BP est appuyé :

    Je voudrai pouvoir stocker les 4 plus récents "event_time" , ainsi au fur et à mesure de l'apparition des évenements le plus ancien évenement se fait écraser par le plus récent .


    Je vous remercie de votre aide,

  2. #2
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    C'est tout le principe d'une file !
    Je te conseils de garder ton tableau et de gérer à côté un indice qui s'incrémentera au fur et à mesure des enfilements,bien évidement arrivé en fin du tableau, ce dernier doit être repositionné en début.

    ce n'est pas très difficile à coder, bonne chance.

  3. #3
    Membre chevronné
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Points : 1 802
    Points
    1 802
    Par défaut
    tu peux aussi ne pas utiliser d'index et a chaque fois que le bouton est presser decaler les elements et ajouter le dernier par example au debut tu as
    0 0 0 0
    quand le BP est presser tu decales le tout puis tu ajoutes tu aura

    0 0 0 v1
    si il est encore presse du decale v1 et tu ajoutes v2

    0 0 v1 v2
    et ainsi de suite

    v2 v3 v4 v5
    aisin tu ne te preocupes pas du nombre de fois que l'on appuis puisque tu as un tableau de 4 valeur que tu rearranches a chaque fois de sorte a avoir a l'indice 0 la plus ancienne valeur a 3 la plus recentes

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Auriez vous un exemple de code a me donner svp, cela m'aiderait à démarrer.

    Merci à vous,

  5. #5
    Membre chevronné
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Points : 1 802
    Points
    1 802
    Par défaut
    ecoutes c'est difficile de donner un code quand on ne sais meme pas comment ca marche. je peux te donner un pseudo code.

    soit un tableau d'heure avec comme elements une chaine de carateres de 8 soit
    hh:mm:ss donc on a Ttemp[4][8];

    tu faits:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(BP==1) //donc si le boutton est presse
    {
        for(i=1;i<4;i++)
       {
            strcpy(Ttemp[i-1],Ttemp[i];  //on copy l'element i vers i-1 
           // donc par exampel a la fin de cette bouvle on passe de  1 2 3 4   a    2 3 4 4
       }
        strcpy(Ttemp[3],temps_actuel) // on ajoute l'heure actuelle a la fin on donc 2 3 4 5
    }
    donc a chaque fois que le bouton est presse tout sera decalle. bien entendu le tableau de caracteres est un example c'est pour que si tu printf tu ai un truc du genre:
    12:23:59. sinon tu peux toujours utiliser une structure qui donnera mieux les renseigment d'ailleurs.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut
    Pourriez vous m'indiquer comment créer un tableau de 4 x 8 char avec C18 ? ( compilateur pour Pic )

    Les 4 lignes du tableau contiendraient les heures précises des 4 événement survenus : ( la longueur serait de 8 charactères pour y stocker l'heure )

    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    event_time_http1
    event_time_http2
    event_time_http3
    event_time_http4
    Pour le moment, mon programme est capable, à chaque fois qu'un événement se présente de stocker l'heure précise de celui-ci dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char event_time_http[8]
    Je voudrai, selon votre exemple, créer un tableau qui contiendrait les 4 dernières valeurs de event_time_http pour ensuite afficher chaque ligne du tableau sur un afficheur LCD avec les commandes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strcpy(&LCDBuffer[0][0], event_time_http1);
    strcpy(&LCDBuffer[1][0], event_time_http2)
    strcpy(&LCDBuffer[2][0], event_time_http3)
    strcpy(&LCDBuffer[3][0], event_time_http4)

  7. #7
    Membre chevronné
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Points : 1 802
    Points
    1 802
    Par défaut
    ben justement comme tu as certainement du creer LCDBuffer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char last_event_time[4][8];
    sinon je ne coprend pas trop la question.
    pour la copy on renplace juste le event_time_httpX par son equivalent dans last_event[X][0];

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut
    Merci lilington, votre méthode fonctionne parfaitement.

    Je vous remercie de m'avoir aidé,

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

Discussions similaires

  1. [XL-2007] Remplissage automatique d'un tableau
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2010, 15h22
  2. Remplissage automatique de valeurs dans un tableau
    Par julien_julio dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/04/2010, 15h52
  3. [XL-2003] création de plusieurs feuilles et remplissage automatique
    Par tonitto85 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/11/2009, 17h11
  4. Réponses: 2
    Dernier message: 20/06/2009, 18h46
  5. [VBA-E] Form Excel VB, remplissage automatique d'un tableau
    Par evema dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/04/2007, 14h37

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