toofree 发表于 2018-4-25 15:40:29

本帖最后由 toofree 于 2018-4-25 15:43 编辑

对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮点或双精度数,且b不为零。
把程序的优化等级调到最低

embededtony 发表于 2018-4-25 15:53:15

bargagebaobei 发表于 2018-4-25 15:37
不是死循环 就是一个小延时 比如 delay_ms(1)或者诸如此类的因为你说如果单步没问题 全速有问题 所以我考 ...

很遗憾,并没有什么作用。

springvirus 发表于 2018-4-25 15:55:18

embededtony 发表于 2018-4-25 14:08
另外我发现一个问题,如果我把我的模拟sci读取传感器的函数注释掉不调用,就没有问题。我怀疑是不是堆栈 ...

那就重点检查读取传感器函数里面吧

bargagebaobei 发表于 2018-4-25 15:55:34

您延时给的多少?在哪里加的延时代码 贴过来瞅瞅

embededtony 发表于 2018-4-25 15:59:11

bargagebaobei 发表于 2018-4-25 15:55
您延时给的多少?在哪里加的延时代码 贴过来瞅瞅

                action_available = true;
// read position from sensor
                update_current_position(getMicroSteps());
                update();
                HAL_Delay(100000);
我把程序拿到主循环中跑了,刚才延时10ms不行,现在延时100ms还在跑,挺慢的

embededtony 发表于 2018-4-25 16:01:16

springvirus 发表于 2018-4-25 15:55
那就重点检查读取传感器函数里面吧

我检查过了,没有任何的死等函数,SCI是IO模拟的,这个不是问题所在。

embededtony 发表于 2018-4-25 16:02:28

toofree 发表于 2018-4-25 15:40
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮 ...

工程暂时真的不大方便,我如果把其他的都搞掉,估计我自己都试不出来东西了,公司的代码不能乱发啊

bargagebaobei 发表于 2018-4-25 16:03:31

楼主啊 我看不到全貌 不能确定你添加的位置对不对update_current_position(getMicroSteps());
                update();这俩函数体是什么

embededtony 发表于 2018-4-25 16:03:59

toofree 发表于 2018-4-25 15:40
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮 ...

我这个工程hal库的,优化最低连时钟初始化代码都过不了,我也不知道原因。另外temp,a,b都是long型,没有浮点运算。

springvirus 发表于 2018-4-25 16:06:43

想解决问题,还没法发代码,只能自己排查了
页: 1 2 3 [4]
查看完整版本: STM32卡死问题