Retour en haut
La publicité est notre seule source de revenu.
Si vous appréciez lelectronique.com, désactivez votre bloqueur de pub. Merci à vous ! En savoir plus.
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 10 sur 14
  1. #1
    Obi-Wan
    Invité

    Par défaut Incrementer une mémoire en langage C

    Bonjour !

    voila j'ai réalisé une transmission HF avec un module hybride radiometrix (BIM2) en 433,92 MHz. J'ai réalise mon programme d'emission mais j'ai des problèmes quant au programme de reception.
    En effet pour recevoir les données je veux les memoriser dans la RAM de mon PIC (16f877) mais comment fait-on pour incrementer l'adresse d'un RAM en langage C.

    J'espère avoir ete clair dans mon explication, pour info, j'utilise le compilateur C de CCS.

    Merci d'avance pour votre aide

    Obi le petit électronicien.

  2. # ADS
    Circuit advertisement
     

  3. #2
    Obi-Wan
    Invité

    Par défaut

    en faisant mem++; ça devrait le faire je pense non ?

  4. #3
    jack
    Invité

    Par défaut

    salut,

    tout dépend de la façon dont tu as déclaré mem. Il faut que mem ait été déclarée comme un pointeur sur la donnée qui t'intéresse.

    A+

  5. #4
    Obi-Wan
    Invité

    Par défaut

    coment je c si c un pointeur ?

  6. #5
    Harry_Tauper
    Invité

    Par défaut

    Salut,
    Déclare un tableau, exemple: int stockage[TAILLE].
    Puis apres tu fais: stockage[mem] pour accéder à la case qui t'interesse.
    Par exemple pour remplir ton tableau:
    int mem; // ton adresse mémoire
    int sotckage[200]; // ton tableau de stockage
    int donnee; // la donnee re_çu

    for(mem=0; mem<200; mem++)
    {
    stockage[mem] = donnee
    }

    @+

  7. #6
    Obi-Wan
    Invité

    Par défaut

    Après plusieurs essai, je n'ai pas reussi à mettre en oeuvre ces quelques lignes de programmation, apparemmen il incremente la valeur dans la mémooire

  8. #7
    Harry_Tauper
    Invité

    Par défaut

    Salut,
    Tu peux nous poster le bout de code concerné?

    @+

  9. #8
    Obi-Wan
    Invité

    Par défaut

    voici le bout de mon prog

    output_bit( HF_TX_VALID_PIN, 1); //Mode reception du BIM2
    output_bit( HF_RX_VALID_PIN, 0);
    a=getc(); //Réception des données
    b=getc();
    c=getc();
    d=getc();
    e=getc();
    f=getc();
    g=getc();
    h=getc();
    i=getc();
    if (h==0x5A)
    {
    a=0;
    b=0;
    c=0;
    d=0;
    e=0;
    f=0;
    g=0;
    h=0;
    i=0;

    et moi j'aurais voulu utiliser qu'une variable cad,
    for(mem=0; mem<10; mem++)
    {
    stockage[mem] = getc();
    if (mem==0x5A)
    { envoyer données }
    }
    mais il n'incremente pas l'adresse mais la valeur bizarrement.

  10. #9
    jack
    Invité

    Par défaut

    il a un problème, ton programme

    if (mem==0x5A)
    Vu que mem va de 0 à 9, mem ne risque pas d'arriver à 0x5A.

    Qu'est-ce qui te fait dire qu'il n'y a pas incrémentation de l'adresse? Comment le constates-tu?

    A+

  11. #10
    Obi-Wan
    Invité

    Par défaut

    je reçois 10 octets maximum
    et quand je detecte le 0x5A j'envoie les miennes. le
    if (mem==0x5A) est un test de la valeur DANS la mémoire
    il ne faut pas le confondre avec mem=0x5A où là je met 5A dans mem

    moi ce que je veux c'est recevoir les données dans la meme case memoire et de tester celle-ci.

Informations de la discussion

Utilisateur(s) sur cette discussion

Il y a actuellement 1 utilisateur(s) naviguant sur cette discussion. (0 utilisateur(s) et 1 invité(s))

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Forum électronique
Ce forum électronique a pour but d'aider les électroniciens ou non dans leur réparation, leur dépannage mais aussi tout simplement pour la réalisation d'un montage électronique
Suivez-nous