Например TDA7294

Форум РадиоКот • Просмотр темы - Не работает pow и аналоги
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 27, 2025 22:04:03

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Не работает pow и аналоги
СообщениеДобавлено: Вс мар 27, 2022 15:49:08 
Открыл глаза

Зарегистрирован: Вт июн 05, 2012 23:32:13
Сообщений: 46
Рейтинг сообщения: 0
Добрый день! Потребовалось возвести число в степень. Написал вот такую функцию,
Спойлер
Код:
#include "math.h";
uint16_t LPS25HB_readAltitude(float pH) {

   pH = pH / 10; // конвертация из гектопаскалей в паскали
   float p0 = 101.325;   // Давление на высоте 0 метров табличное значение
   float faltitude;
   uint16_t altitude;
   // Формула взята из документации из AN4528 от NXP
   float r1 = 1 - (pH / p0);
   float r2 = pow(r1, 0.190263);
   faltitude = 44330.77 * r2;
   altitude = (uint16_t) faltitude;
   return altitude;
}
на шаге float r2 = pow(r1, 0.190263); я получаю nan.

Если я в CubeIDE в режиме отладки в Expression забиваю pow(2,3) к примеру, то получаю ошибку
СпойлерMultiple errors reported.

1) Failed to execute MI command:
-var-create - * pow(2,3)
Error message from debugger back end:
'pow' has unknown return type; cast the call to its declared return type

2) Unable to create variable object

3) Failed to execute MI command:
-data-evaluate-expression pow(2,3)
Error message from debugger back end:
'pow' has unknown return type; cast the call to its declared return type

4) Failed to execute MI command:
-var-create - * pow(2,3)
Error message from debugger back end:
'pow' has unknown return type; cast the call to its declared return type
Подскажите пожалуйста, как запустить функцию возведения в степень ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не работает pow и аналоги
СообщениеДобавлено: Вс мар 27, 2022 16:08:39 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
ну дык написано же английским, что требуется явное указание типа результата. var - это не тип
в первом же случае NaN получается, потому что невозможно возвести. Вероятно, пытаетесь возвести в дробную степень отрицательное число.

Добавлено after 15 minutes 18 seconds:
А вообще, надо смотреть документацию. У меня нет под рукой для С++, но вот у, например, С# так описывается:
Код:
Параметры   Pow(x,y)                           Возвращаемое значение
----------
x или y = NaN.                              NaN
x = Любое значение, кроме NaN; y = 0            1
x = NegativeInfinity; y < 0                     0
x = NegativeInfinity;
y является положительным нечетным целым числом      NegativeInfinity
x = NegativeInfinity;
y является положительным,
но не является нечетным целым числом            PositiveInfinity
x < 0, но не NegativeInfinity;
y не является целым числом,
NegativeInfinity, или PositiveInfinity            NaN
x = -1; y = NegativeInfinityили PositiveInfinity   NaN
-1 < x< 1; y = NegativeInfinity                  PositiveInfinity
-1 < x< 1; y = PositiveInfinity                  0
x <-1 или x > 1; y = NegativeInfinity            0
x <-1 или x > 1; y = PositiveInfinity            PositiveInfinity
x = 0; y < 0                              PositiveInfinity
x = 0; y > 0                              0
x = 1; y любое значение, кроме NaN               1
x = PositiveInfinity; y < 0                     0
x = PositiveInfinity; y > 0                     PositiveInfinity


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не работает pow и аналоги
СообщениеДобавлено: Вс мар 27, 2022 16:22:28 
Открыл глаза

Зарегистрирован: Вт июн 05, 2012 23:32:13
Сообщений: 46
Рейтинг сообщения: 0
Martian, Спасибо. Да действительно, скорее всего у меня были отрицательные числа, т.к. формулу я переписал не верно


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Fanis1867, Novice user и гости: 21


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y