I2C questions de PIC

B

boncker

Guest
Bonjour les gars,

J'ai une question sur la communication I2C en PIP.J'ai besoin d'écrire un programme en C qui rend la communication par protocole I2C avec un autre appareil (c'est-à-dire un capteur de température).

(after all the declarations before), will the sensor start to send the data to PIC immediately?

Si, dans le PIC logiciel,
j'écris "i2c_read ()"
(après toutes les déclarations avant), le capteur de commencer à envoyer les données au PIC immédiatement?Si oui, comment puis-je obtenir les données de température et de le mettre dans une variable?
Je serais heureux si vous pouviez mettre quelques exemples de codes.

Merci!

 
Quel compilateur C utilisez-vous?

Parce que certains viennent de compilateur C avec un I2C bibliothèque.De même, les compilateurs C ont tendance à avoir différentes manières d'utiliser enregistrer des noms.

À la vôtre,

 
Salut

Le programme ci-dessous est un exemple pour lire le dispositif RTC DS1307 sur le compilateur CCS mai il vous aider à comprendre comment garder la lecture des données de la variable, mais elle mai ne pas être utilisé sur un autre type de périphérique, ce qui concerne la spécification du dispositif par rapport aux des détails sur sa fiche.
si vous avez des questions, poste ici de nombreux peuples qui cherchent à vous aider.

Avoir une bonne fois.
Joe

DS1307_Read Void () (

i2c_start (); / / Send I2C Start transfert
i2c_write (Ds1307_Wt) / / Envoyer un identifiant adresse I2C - écrire
i2c_write (0x00) / / Point à l'adresse 0x00
i2c_stop (); / / Send I2C Stop Transfer

i2c_start (); / / Send I2C Start transfert
i2c_write (Ds1307_Rd) / / Envoyer un identifiant adresse I2C - Lire
Seconds = i2c_read (1) / / Lit les données, ACK
Minutes = i2c_read (1) / / Lit les données, ACK
Heures i2c_read = (1) / / Lit les données, ACK
Day = i2c_read (1) / / Lit les données, ACK
Date = i2c_read (1) / / Lit les données, ACK
Mois = i2c_read (1) / / Lit les données, ACK
Year = i2c_read (0) / / Lit les données, pas ACK)
i2c_stop (); / / Send I2C Stop Transfer
)

 
boncker a écrit:

Bonjour les gars,J'ai une question sur la communication I2C en PIP.
J'ai besoin d'écrire un programme en C qui rend la communication par protocole I2C avec un autre appareil (c'est-à-dire un capteur de température).
(after all the declarations before), will the sensor start to send the data to PIC immediately?
Si, dans le PIC logiciel, j'écris "i2c_read ()"
(après toutes les déclarations avant), le capteur de commencer à envoyer les données au PIC immédiatement?
Si oui, comment puis-je obtenir les données de température et de le mettre dans une variable?

Je serais heureux si vous pouviez mettre quelques exemples de codes.Merci!
 
Ok, joeboy1995 a donné un exemple de la séquence du bus I2C.

Selon la résolution de votre capteur de température, vous mai nécessité de transférer plus d'un octet.Par exemple,
le MAX6633 est un capteur de 12-bit compatible avec l'interface I2C, et vous avez besoin de transférer 2 octets de données pour une température de lecture.

À la vôtre,

 
salut tous,
Je pense que le problème est dans l'adresse de l'esclave (le capteur), vous devez le terrain A0, A1, A2 pins du capteur
dans le i2c_read ccs travaillera avec l'adresse est par défaut,
ou vous devez modifier

espérons que cela vous aider

 

Welcome to EDABoard.com

Sponsor

Back
Top