Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
05.07.2007, 15:35
|
#11
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
я делал так:
void read_low_temp(int* data,int* znak) {
signed int datah, datal;
signed long data1;
i2c_start();
i2c_write(0x90);
i2c_write(0xaa);
i2c_start();
i2c_write(0x91);
datah=i2c_read();
datal=i2c_read(0);
i2c_stop();
data1=datah;
if(bit_test(data1,7))
{
data1=(~data1)+1;
*data=data1;
*znak=0x01;
}
else
{
*znak=0x00;
*data=data1;
}
if(data › 127)
*data = 127;
}
|
|
|
|
05.07.2007, 17:27
|
#12
|
Вид на жительство
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
|
Во!
А теперь еще бы узнать, что Вы хотите получить?
|
|
|
|
06.07.2007, 06:12
|
#13
|
Прохожий
Регистрация: 10.06.2007
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
2 CERGEL1982:
DS1621 устарел.
Если хотите именно I2C, то используйте DS1631.
|
|
|
|
06.07.2007, 07:08
|
#14
|
Прохожий
Регистрация: 09.02.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
а я делал так
ds1621_start();
i2c_start();
i2c_write(0x90);
i2c_write(0xaa);
i2c_stop();
i2c_start();
i2c_write(0x91);
temp = i2c_read(0);
i2c_stop();
if (temp › 0x7F)
{
byte_indicate=(~byte_indicate)+1;
znak=1;
}
else
{
znak=0;
}
все работает на железе
и почему
i2c_start();
i2c_write(0x90);
i2c_write(0xaa);
i2c_start();
i2c_write(0x91);
datah=i2c_read(); ‹- тут ты принципиально 1 не ставишь ?
datal=i2c_read(0);
i2c_stop();
|
|
|
|
06.07.2007, 12:19
|
#15
|
Гражданин KAZUS.RU
Регистрация: 05.10.2006
Сообщений: 628
Сказал спасибо: 21
Сказали Спасибо 165 раз(а) в 92 сообщении(ях)
|
Делал сначала с DS1621, потом вместо нее прицепил DS1821. Чтобы не менять всю программу конвертировал данные от 1821 в формат 1621. ASM для 51-го MCU, если это кому нужно. Головная прога на СИ-›KEIL
__________________
Быть,а не казаться.
|
|
|
|
09.07.2007, 06:21
|
#16
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
и почему
i2c_start();
i2c_write(0x90);
i2c_write(0xaa);
i2c_start();
i2c_write(0x91);
datah=i2c_read(); ‹- тут ты принципиально 1 не ставишь ?
datal=i2c_read(0);
i2c_stop();[/quote]
Писал в CCS,там datah=i2c_read(); по умолчанию видать ставит компилятор сам единичку.Проц сгорел(програматор самодельный,оказалась програмировал без питания +5в,один раз прошил на удивление,работал,второй раз уже хана,память прошивает,а вот биты управления,где собака и т д,не хочет),теперь жду когда новый привезут,буду дальше делать.Может из за програматора схема и не работа,посмотрем
|
|
|
|
09.07.2007, 06:24
|
#17
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Сообщение от fanton
|
2 CERGEL1982:
DS1621 устарел.
Если хотите именно I2C, то используйте DS1631.
|
Что есть под рукой ![Подмигивание](images/smilies/icon_wink.gif) ,с запчастями трудновато в небольшом городке.Может кто отдельную микросхемку ацп подскажет,желательно с шиной SPI и на русском описании,для изучения работы шины SPI,знаю что не в тему
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:31.
|
|