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 :

[I2C PIC] Probléme lors de la simulation . Compilateur CCS


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Points : 333
    Points
    333
    Par défaut [I2C PIC] Probléme lors de la simulation . Compilateur CCS
    Bonjour , je souhaite recopier l'entrée d'un composant I2C , sur un autre .

    Je connai la trame I2C semble corecte .

    Code : 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
    #include <16f877.h>
    #fuses XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT, NOLVP
    #use delay (clock=4000000)
    #define LED pin_B0
     
    #use I2C(master, sda=PIN_C4, scl=PIN_C3)//declaration de I2C ( Maitre , Donnée sur BO et Horloge B1 )
    int8 donnee;
     
    Void puti2C(int8 addresse, int8 Donnee)//envoi
       {
       i2c_start();
       i2c_write(addresse);
       i2c_write(Donnee);
       i2c_stop();
       }
     
    int8 lect_i2c(int8 addresse)//lecture
       {
       int8 donnee;
       i2c_start();
       i2c_write(addresse);
       donnee=I2C_READ();
       i2c_stop();
       return donnee;
       }
     
    void main()
       {
        donnee=0x01;
       while(1)
          {
     
          //donnee=lect_i2c(0x41);
          puti2C(0x42,donnee);
          donnee++;
          delay_ms(100);
           }
     
       }
    Se programme réalise bien un compteur .

    ============
    je fait un segond test .

    Si P0(entrée de U3 ) =1
    Et P1 A P7 = 0

    LED=1

    Code : 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
    void main()
       {
       /*Recopier le debut , seul main change */ 
       while(1)
          {
     
          donnee=lect_i2c(0x41);
          //puti2C(0x42,donnee);
          if(donnee==0x01)
             {
             output_high(LED);
             }
           else 
             {
             output_low(LED);
             }
           }
     
       }
    Dans l'analise pas a pas , j'ai parfois donnée = 0xFF

    Je ne comprend pas pourquoi .

    Voila , je met en fichier joint , la source et le fichier executable sur proteus . ( mon simulateur )

    Merci d'avence .
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Qu'est ce que le type int8 ?
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  3. #3
    Membre averti
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Points : 333
    Points
    333
    Par défaut
    Le compilateur comme il travail pour faire des programme pour des PIC ( composant programable ) as peu de ram , donc il as créé

    int1 (possibilité de conserver un 0 ou 1 )
    int8 sa vaut un char ( un octet)
    int16 (2 octet)

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/02/2014, 08h08
  2. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37
  3. Problème lors du EXTEND d'un tableau
    Par banana31 dans le forum Oracle
    Réponses: 14
    Dernier message: 10/02/2004, 10h58
  4. Problème lors du chargement
    Par carlito dans le forum Flash
    Réponses: 26
    Dernier message: 06/01/2004, 15h21
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

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