i2c help
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

i2c help



  1. #1
    ELECINTER

    Question i2c help


    ------

    Bonjour

    J'aimerai savoir quel bout de code sur CCS permet de lire des caractère au travers d'un câble i2c:

    voici le resultat de l'aide mais sa reste flou pour moi

    i2c_start();
    i2c_write(0xa1); // adresse LCD
    data1 = i2c_read();
    i2c_stop();

    Je faire en faire une fonction lecture de char.

    Merci d'avance

    -----

  2. #2
    Jack
    Modérateur

    Re : i2c help

    Les doublons sont interdits.

    Faire un petit up si aucune réponse n'est parvenue au bout de quelques jours, mais en aucun reposter le même problème.

  3. #3
    bertrandbd

    Re : i2c help

    Bonjour

    Pour moi, les 4 fonctions ont leur utilité. Stop et Start sont nécessaires pour clore et débuter le dialogue avec le périphérique. L'adresse du périphérique est indiquée par i2c_write et i2c-read permet de récupérer des informations ou de lire des informations de l'écran LCD (registre de status). Pour mémoire, il y a un protocole qui permet de lire octet par octet et un autre qui une page de la mémoire.

    Fait un tour sur le net pour comprendre le protocole.

    A+

  4. #4
    LABTOOL48

    Re : i2c help

    salut

    i2c_start(); = 0 volte sur la ligne SDA indique a l'esclave que le métre a demarrer la commenication


    i2c_write(0xa1); et puis l'esclave attend sont adresse "a" avec le code d'opiration "1" pour lire et "0" pour ecrire

    data1 = i2c_read(); le métre recupire la donnée a lire et il a aficter au variable "data1"

    i2c_stop(); arréter la commenication

  5. A voir en vidéo sur Futura
  6. #5
    ELECINTER

    Re : i2c help

    Quel code en i2c dois-je écrire pour que mon pic (16f887) puisse
    lire des chaîne des caractères qui parviennent sur ses pins (SDA & SCL) ?
    je ne sais pas comment donner une adresse au dit pic
    (juste qu'il faudrait un 1 = lecture et 0 = écriture).

    Voici mon code:
    char read(void )
    {
    int i;
    char line[50];

    i2c_start();
    i2c_write(0xF7); // adresse du pic
    line=i2c_read(); // ???
    i2c_stop();

    return line ;
    }

    merci d'avance

  7. #6
    Jack
    Modérateur

    Re : i2c help

    0xf7 pour une adresse d'écriture, ça commence mal.

    Pour lire une chaine de caractères, il suffit de faire une boucle en faisant autant de i2c_read() qu'il y a de caractères à lire
    Puis tu termines la trame par un stop.

    Sinon, il n'y a pas de fonctions toutes faites pour lire ou écrire des blocs de données sur l'I2C dans les librairies de ton compilateur?

    A+
    Dernière modification par Jack ; 16/05/2011 à 22h51.

  8. #7
    LABTOOL48

    Re : i2c help

    bonjour


    lire des chaîne des caractères qui parviennent sur ses pins (SDA & SCL) ?
    parviennent de qui mètre ou esclave tu veux communique avec qui exactement ?

    line=i2c_read(); // ???
    non il faut selectionner d'abord une adresse de tableau
    exemple
    "line[0] = i2c_read();"
    avant de copier la donnée mais pour seulement un octet si tu veux 50octets a la fois il te faut une boucle voire exemple
    int i;
    for(i = 0;i < 50; i++)
    {
    line[i] = i2c_read();
    }
    pour puisse bien t'aide il me faut le fichier ressource "i2c.h" si tu peux l'envoyer ici

    bonne chanse

Discussions similaires

  1. probleme I2C
    Par invite91a552e4 dans le forum Électronique
    Réponses: 6
    Dernier message: 15/05/2010, 11h16
  2. Protocole I2C
    Par invite6ab74433 dans le forum Électronique
    Réponses: 1
    Dernier message: 12/04/2008, 18h19
  3. I2c
    Par Olfox dans le forum Électronique
    Réponses: 16
    Dernier message: 03/08/2007, 23h11
  4. i2c
    Par invite83855357 dans le forum Électronique
    Réponses: 15
    Dernier message: 23/01/2007, 13h32
  5. I2c
    Par inviteacb3e291 dans le forum Électronique
    Réponses: 5
    Dernier message: 17/06/2005, 14h03
Découvrez nos comparatifs produits sur l'informatique et les technologies.