调试了一天了发现卡死在asin。
手册里也没有:
论坛搜到这个帖子
STC32F12K54硬件三角函数程序死机 - FOC,有ICache的 32F12K54 测试版块 国芯技术交流网站 - AI32位8051交流社区
想问下这个在Ai8051U上还没解决吗,有没有可能LIB不是最新版?
另外GPT上搜到个代替asin的函数,不会卡死,但是不确定有没有损失~:
-
- #define TERMS 20 // 定义泰勒级数的项数
-
- double factorial(int n) {
- double result = 1.0;
- int i;
- for (i = 2; i <= n; ++i)
- result *= i;
- return result;
- }
-
- double power(double base, int exp) {
- double result = 1.0;
- int i ;
- for (i = 0; i < exp; ++i)
- result *= base;
- return result;
- }
-
- double asin_taylor(double x) {
- double sum = 0.0;
- double term = x;
- int n ;
- if (x < -1.0 || x > 1.0) {
- //printf("错误:输入值必须在 -1 和 1 之间。\n");
- return 0.0;
- }
- for (n = 1; n <= TERMS; ++n) {
- sum += term;
- term *= (2 * n - 1) / (2 * n) * (power(x, 2) / (2 * n + 1));
- }
-
- return sum;
- }
复制代码
|