Сделал на DS1820 термометр. В CodeVision для этого есть готовые функции. Программа получается давольно простая. Но дискретность 0,5 не устраивает. В даташите указана формула для вычисления температуры с дискретностью 0,1.
TEMPERATURE=TEMP_READ-0.25+(COUNT_PER_C - COUNT_REMAIN)/COUNT_PER_C
Нужно отбросить младший бит из измеренной температуры, и подставить в формулу данные из SCRATCHPAD ( 6-й, 7-й байты)
Правда, не знаю есть ли смысл ведь, если я не ошибаюсь точность 0,5. Решил попробывать.
В библиотеке ds1820.h есть
Цитата
extern struct __ds1820_scratch_pad_struct
{
unsigned char temp_lsb,temp_msb,
temp_high,temp_low,
res1,res2,
cnt_rem,cnt_c,
crc;
} __ds1820_scratch_pad;
Похоже это те самые данные, которые нужно обработать.
Кто-нибудь пробывал? Как это описать?
Сообщение отредактировал Tiny - Jul 14 2008, 20:37