Не работает pow и аналоги

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Открыл глаза
Сообщения: 46
Зарегистрирован: Вт июн 05, 2012 23:32:13

Сообщение The Rock »

Добрый день! Потребовалось возвести число в степень. Написал вот такую функцию,
Спойлер

Код: Выделить всё

#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
Подскажите пожалуйста, как запустить функцию возведения в степень ?
Реклама
Открыл глаза
Сообщения: 46
Зарегистрирован: Вт июн 05, 2012 23:32:13

Сообщение The Rock »

Martian, Спасибо. Да действительно, скорее всего у меня были отрицательные числа, т.к. формулу я переписал не верно
Реклама
Ответить

Вернуться в «ARM»