I2C въпроси за PIC

B

boncker

Guest
Здравейте момчета,

Аз имам един въпрос за комуникация I2C в снимки.Трябва да напиша програма на С, което прави комуникацията, използваща I2C протокол с друго устройство (т.е. сензор за температура).

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

Ако, в софтуера на PIC, пиша "i2c_read ()"
(след като всички декларации преди това), ще започнете сензора, за да изпратите данните за PIC незабавно?Ако отговорът е да, как мога да получа данни за температурата и го сложи в една променлива?
Аз ще се радвам, ако може да изложи някои примерни кодове.

Благодарности!

 
Кои компилатор, който използвате?

Тъй като някои компилатор дойде с една библиотека I2C.Също така, С компилатори са склонни да имат различни начини за използване на регистър имена.

Наздравици,

 
Здравейте, Аз съм с УСВ компилатор.

 
Здрасти

В по-долу програма е например да прочетете DS1307 РТК устройство на съставител УСВ може да ви помогне да разберете как да се пазят на четене на данни за променливо, но тя не може да се използва на друг различен тип устройство, отношение на спецификацията на устройството се отнасят до информация за своята листа с данни.
Ако имате въпрос, след най-много от хората тук искат да ви помогнат.

Имате добри времена.
Джо

Void DS1307_Read () (

i2c_start (); / / Изпращане I2C Старт Трансфер
i2c_write (Ds1307_Wt); / / Изпращане идентификатор I2C адрес - пишете
i2c_write (0x00); / / Точка на адрес 0x00
i2c_stop (); / / Изпращане I2C Спри Трансфер

i2c_start (); / / Изпращане I2C Старт Трансфер
i2c_write (Ds1307_Rd); / / Изпращане идентификатор, I2C адрес - Прочети
Секунди = i2c_read (1); / / Read данни, АСК
Протоколи = i2c_read (1); / / Read данни, АСК
Часове = i2c_read (1); / / Read данни, АСК
Ден = i2c_read (1); / / Read данни, АСК
Дата = i2c_read (1); / / Read данни, АСК
Месец = i2c_read (1); / / Read данни, АСК
Година = i2c_read (0); / / Read данни, а не АСК)
i2c_stop (); / / Изпращане I2C Спри Трансфер
)

 
boncker написа:

Здравейте момчета,Аз имам един въпрос за комуникация I2C в снимки.
Трябва да напиша програма на С, което прави комуникацията, използваща I2C протокол с друго устройство (т.е. сензор за температура).
(after all the declarations before), will the sensor start to send the data to PIC immediately?
Ако, в софтуера на PIC, пиша "i2c_read ()"
(след като всички декларации преди това), ще започнете сензора, за да изпратите данните за PIC незабавно?
Ако отговорът е да, как мога да получа данни за температурата и го сложи в една променлива?

Аз ще се радвам, ако може да изложи някои примерни кодове.Благодарности!
 
Добре, joeboy1995 е дал пример на автобуса последователност I2C.

В зависимост от резолюцията на вашия температурен датчик, може да се наложи да прехвърлите повече от един байт.За пример, MAX6633 е 12-битов сензор със съвместими I2C интерфейс, и вие ще трябва да прехвърлите 2 байта на данни за температурата на едно четене.

Наздравици,

 
Здравейте всички,
Мисля, че проблемът е в роб адрес (на сетивата), трябва да земята A0, А1, А2 крачетата на датчика
на i2c_read в УСВ ще се работи с адрес по подразбиране,
или ако трябва да се промени

Надявам се, че ще ви помогне

 

Welcome to EDABoard.com

Sponsor

Back
Top