Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как реализовать формулу
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
addi
Здравствуйте!
Необходимо посчитать температуру по приложенной формуле на MSP430, 16 бит.
Подскажите пожалуйста как это сделать.

Заранее благодарен
Метценгерштейн
так на Си опиши. почти один в один.
addi
Цитата(Метценгерштейн @ Sep 14 2013, 10:44) *
так на Си опиши. почти один в один.

угу, вопрос в том что не знаю как на Си, как например корень описать?
winipuh
Цитата(addi @ Sep 16 2013, 22:40) *
угу, вопрос в том что не знаю как на Си, как например корень описать?

Шутите? sm.gif

Код
#include <math.h>
...

tetha = (-R0*A + sqrt((R0*A) * (R0*A) - 4*R*B*(R0-R))) / (2*R0*B);
aaarrr
Цитата(addi @ Sep 16 2013, 22:40) *
угу, вопрос в том что не знаю как на Си, как например корень описать?

Код
#include <math.h>
double sqrt(double x);
float sqrtf(float x);
long double sqrtl(long double x);
AndrewN
QUOTE (addi @ Sep 16 2013, 22:40) *
угу, вопрос в том что не знаю как на Си, как например корень описать?
Пользуйтесь алгоритмом Ньютона-Рафсона:
CODE
if (x < 0.0)
    root = QNaN; // низя, школу помните?
else if (x == 0.0)
    root = 0.0;  // увы, больше не дадут
else
{  // элементарно преобразуется в фиксированную точку
    x2 = x / 2.0;
    invroot = 1.0 / x;
    invroot = invroot * (1.5 - x2 * invroot * invroot); // вот так 100 раз
    invroot = invroot * (1.5 - x2 * invroot * invroot); // шучу
    invroot = invroot * (1.5 - x2 * invroot * invroot); // 5 итераций
    invroot = invroot * (1.5 - x2 * invroot * invroot); // за глаза
    invroot = invroot * (1.5 - x2 * invroot * invroot); // и за уши хватит
    root = x * invroot;
}

addi
Всем большое спасибо за поддержку!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.