DS1821
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено bvk 29 сентября 2004 г. 12:28

Коллеги, никак не удается получить уточнение температуры. Пока читаю только основную температуру (0xAA) - все хорошо. Когда начинаю вычитывать другие регистры, основная температура становится 125 градусов. Пробовал не сбрасывать DS1821 перед командой 0x41 (кто-то посоветовал), основная температура становится нормальной, но уточняющие цифры ведут себя странно, практически не меняются с изменением температуры. Посмотрите, может увидите глюк?


reset_DS();
wr_DS(0xEE);
do {
reset_DS();
wr_DS(0xAC);
x = rdDS();
}
while( x & 0x80 );

reset_DS();
wr_DS(0xAA);
x=rd_DS();
f=(float)x;

reset_DS();
wr_DS(0xA0);
a=rd_DS9();

reset_DS();
wr_DS(0x41);

reset_DS();
wr_DS(0xA0);
b=rd_DS9();

f = f -0.5 + (float)(a-b)/a;
printf("a=%d b=%d T = %f\r\n", a, b, f);


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru