Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Расчёт DS18B20
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
ILYAUL
Всем , здравствуйте!

Как на asm посчитать температуру до 4-го знака после запятой? Т.е с коэффициентом 0,0625. Чего-то ничего в голову не лезет и найти не могу.
polyname
не асм, но для затравки (до 0.1°):
Код
// convert 12-bit temperature data of ds18b20 to signed celsius fixed-point (with tenth)
S16 ds1w_12bit2tenth(U16 value) {
    U8 value_sign = (value >> 8) & 0x80; // remember sign of value
    if (value_sign) value = 0 - value;   // convert to absolute value
    value = (value >> 1) + (value >> 3); // convert from 12-bit to fixed point
    if (value_sign) value = 0 - value;   // restore sign of result
    return value;
}
ILYAUL
Собственно цена деления 0,0625 . Младшие 4 дадут максимально 0,9375. Посему достаточно отделить младшие и их значение умножить на 625. Что и даст искомые 4 разряда после запятой. Вот , чего надумал. Осталось написать.
Пока лень.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.