您好、香榭丽舍
我发现正弦和余弦函数的计算不正确。 正弦/余弦的输出应以±1为界。 但有时、结果不是下面的测试结果。
这是什么问题?
这是我用于正弦/余弦测试的示例代码。
float32_t test_float32 = 0.0001f;
int32_t test_int32、test_int32_2;
TEST_Function (void)
{
//...
对于(I = 0;I < 100000;I++)
{
test_int32 =(int32_t) test_float32;
angle_rad_test = cosf (test_float32);
test_int32_2 =(int32_t)((test_float32 - test_float32)/ 2.0f); //float32_t test_float32、angle_rad_test
printf ("count %d、test_int32_2 %d、angle_rad_test %.06f、\n"、i、 TEST_Int32_2、ANGE_RAD_TEST);
vTaskDelay (20);
}
//...
}
[测试结果1]
17:04:47.338计数507、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.338计数508、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.373计数509、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.397计数510、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.397计数511、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.435计数512、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.435计数513、TEST_Int32_2 0、ANGAL_RAD_TEST 71864165861923956871032714843750000000000000000000.000000、
17:04:47.487计数514、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.487计数515、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.509计数516、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.537计数517、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.550计数518、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:47.550计数519、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
[测试结果#2
17:04:56.545计数953、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.567 count 954、test_int32_2 0、angle_rad_test 1.000000、
17:04:56.594计数955、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.614计数956、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.614计数957、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.641计数958、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.658计数959、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.698计数960、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.718计数961、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.736 count 962、test_int32_2 0、angle_rad_test 718641514022674798965454101562500000000000.000000、
17:04:56.736计数963、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.782 count 964、test_int32_2 0、angle_rad_test 1.000000、
17:04:56.804计数965、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.804计数966、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.823 count 967、test_int32_2 0、angle_rad_test 1.000000、
17:04:56.841 count 968、test_int32_2 0、angle_rad_test 1.000000、
17:04:56.879计数969、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.879计数970、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:04:56.933计数971、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
[测试结果#3]
17:05:05.291计数1370、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.311计数1371、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.328计数1372、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.353计数1373、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.367计数1374、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.398计数1375、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.416计数1376、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.416计数1377、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.458计数1378、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.474计数1379、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.490计数1380、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.513计数1381、TEST_Int32_2 0、ANGAL_RAD_TEST 7186416581398636831793212890625000000000000000000.000000、
17:05:05.532计数1382、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.552计数1383、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.569计数1384、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.608计数1385、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.644计数1386、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.644计数1387、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.671计数1388、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.690计数1389、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.690计数1390、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.724计数1391、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:05.739计数1392、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
[测试结果#4]
17:05:43.640计数3175、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.670计数3176、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.670计数3177、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3178、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3179、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3180、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3181、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3182、TEST_Int32_2 0、ANGAL_RAD_TEST 712434656989405274391174316406.250000、
17:05:43.693计数3183、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3184、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3185、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.693计数3186、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.713计数3187、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:43.713计数3188、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
[测试结果#5]
17:05:31.440计数2614、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.440计数2615、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.468计数2616、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.468计数2617、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.484计数2618、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.516计数2619、TEST_Int32_2 0、ANGE_RAD_TEST 1.000001、
17:05:31.533计数2620、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.533计数2621、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.579计数2622、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.579计数2623、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
17:05:31.619计数2624、TEST_Int32_2 0、ANGE_RAD_TEST 1.000000、
这是 CCS 中的处理器选项。
谢谢、
Steve