Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR+LPS001
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
aksmk
Кто нить работал с датчиком давления LPS001?
У меня не происходит инкремент адресов регистров при чтении.
GDI
Подробности будут?
aksmk
Цитата(GDI @ Jun 26 2012, 15:09) *
Подробности будут?


пишу в датчик адрес регистра потом считываю че в нем читает правельно.
Но при попытке считать даные давления и температуры выдает одно и тоже
значение, которое было в первоь регистре для всех четырех



Нажмите для просмотра прикрепленного файла

Нажмите для просмотра прикрепленного файла
GDI
Тут клещи нужны. Вы задайте правильно вопрос, может и сами в процессе ответ найдете. Опишите проблему целиком, почему нужно догадываться что Вы там делали? Я вот не вижу что Вы ждете Аск после i2c_start(SAD_W);, а судя по даташиту его нужно ждать. А после "Low_P = " надо наоборот, не ждать Аск от слейва, а мастером Аск давать. Но я не силен в АВРГЦЦ, тожет i2c_start уже ждет Аск сама, а i2c_readAck отправляет Аск слейву.
Не пробовали по одному байту данные читать?

aksmk
Цитата(GDI @ Jul 2 2012, 15:26) *
Тут клещи нужны. Вы задайте правильно вопрос, может и сами в процессе ответ найдете. Опишите проблему целиком, почему нужно догадываться что Вы там делали? Я вот не вижу что Вы ждете Аск после i2c_start(SAD_W);, а судя по даташиту его нужно ждать. А после "Low_P = " надо наоборот, не ждать Аск от слейва, а мастером Аск давать. Но я не силен в АВРГЦЦ, тожет i2c_start уже ждет Аск сама, а i2c_readAck отправляет Аск слейву.
Не пробовали по одному байту данные читать?


проблема оказлась в том, что при передаче адреса читаемого регистра нужно установить старшый битик в 1, чтобы прцес пошел с атоинкрементом адресов

#define I2C_AUTO_INCREMENT 0x80

i2c_start(SAD_W);
i2c_write(I2C_AUTO_INCREMENT|PRESS_OUT_L);
i2c_start(SAD_R);
Low_P = i2c_readAck();
Hi_P = i2c_readAck();
Low_T = i2c_readAck();
Hi_T = i2c_readNak();
i2c_stop();
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.