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 à la compréhension d'un programme


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Aide à la compréhension d'un programme
    Bonjour tout le monde,

    Je suis débutant en programmation et on m'a filé un programme en C que je n'arrive pas très bien à comprendre certaines lignes de mon programme y'a t'il une âme charitable qui pourrais m'aider.

    Merci d'avance à ceux qui le feront

    https://pastebin.com/zGFRPKXd

    Code c : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    include "mbed.h"
    //--------- Tx Rx
    Serial uart(p9, p10,10000); // Créez un port série, connecté aux broches d'émission et de réception 9 et 10 à 9600bauds
    InterruptIn event(p8); // InterruptIn : Interruption (broche PinName) : Créez un interrupteur connecté à la broche 8 c'est-à-dire la broche 8.
    void Spint_compt(); //
    unsigned int comptage,i,val,imod,duree=1,temps; //
    unsigned int n=0,nlu=0,nd; //
    define max 15000 //
    unsigned short Tab[15000]; //
    int main() //Programme Principal
    {
    event.rise(&Spint_compt); // Permet de joindre une fonction membre pour appeler lorsqu'un front montant survient sur l'entrée.
    while(1) // Boucle Tant que (toujours faire)
    {
    comptage=0; //
    wait(duree); // 1s
    //----------STOCKAGE
    if(comptage!=0 && Tab[n]==0) //
    {
    Tab[n]=comptage; //
    n= (n+1)%max; //
    }
     
    //*******************************
    //---DEMANDE LABVIEW
    //--Réception Durée et nbre de mesures
    if(uart.readable()) //permet d'exécuter une série d'instructions et déterminez s'il existe un caractére disponible à lire.
    {
    //----Attendre de tout recevoir
    wait(0.04); // Tempo de 0.04s
    //convertir DUREE
    temps=duree;
    duree=uart.getc()&0x0F; //
    val=uart.getc(); //
    while(val!=0x0A) //
    {
    duree=duree*10+ (val&0x0F); //
    val=uart.getc(); //
    }
    //-- Init à 0 RAM
    if (duree!=temps) //
    {
    for(i=0;i<max;i++) Tab[i]=0; //
    n=0;nlu=0; //
    }
    //convertir Nbre mesure
    val=(uart.getc())&0x0F; //
    while(uart.readable()) //
    {
    val=val*10; //
    val=val+ ((uart.getc())&0x0F); //
    }
    //Envoyer les mesures
    nd=nlu; // la valeur du pointeur nd prend la valeur du pointeur nlu
    for(i=nd;i<(nd+val);i++) //
    {
    imod= i%15000; // lorsque imod vient à 15000 cela repasse à 0
    uart.printf("%d\n",Tab[imod]); //
    if(Tab[imod]!=0) //
    nlu=(nlu+1)%15000; // pointeur de lecture nlu incrémenter à n+1 modulo 15000
     
    Tab[imod]=0; // Remplace la valeur lue par 0
    wait(0.001); //Tempo de 0.001s
    }
    }
    }
    }
     
    void Spint_compt() // Permet de définir le format de transmission utilisé par le port série.
    {
    comptage++; //Incrémenter
    }

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir et bienvenu sur Developpez.com

    Ton code n'est pas vraiment lisible sans indentation. Après, tu aurais pu préciser la cible, visiblement c'est de l'embarqué, de l'ARM 32 bits en raison de l'include mbed.h.
    Ensuite, tu pourrais préciser ce que tu ne comprends pas, on n'est pas là pour faire ton exercice (cf le point IV-N des règles du forum). En l'état on a l'impression que tu n'as même pas cherché.

    Bonne soirée

    Delias

Discussions similaires

  1. [Aide] Compréhension de ce programme
    Par omar6995 dans le forum Prolog
    Réponses: 0
    Dernier message: 19/01/2015, 22h39
  2. Réponses: 3
    Dernier message: 24/02/2010, 14h17
  3. Petite aide et compréhension à mon problème
    Par swirtel dans le forum Boost
    Réponses: 5
    Dernier message: 10/09/2007, 14h24
  4. [ClearCase]AIDE pour compréhension svp!
    Par wrida dans le forum Framework .NET
    Réponses: 3
    Dernier message: 07/02/2007, 11h44
  5. Besoin d'aide encore pour debugger mon programme
    Par jfjava2002 dans le forum C
    Réponses: 9
    Dernier message: 27/12/2005, 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