本帖最后由 toofree 于 2018-4-25 15:43 编辑
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮点或双精度数,且b不为零。
把程序的优化等级调到最低
bargagebaobei 发表于 2018-4-25 15:37
不是死循环 就是一个小延时 比如 delay_ms(1)或者诸如此类的因为你说如果单步没问题 全速有问题 所以我考 ...
很遗憾,并没有什么作用。
embededtony 发表于 2018-4-25 14:08
另外我发现一个问题,如果我把我的模拟sci读取传感器的函数注释掉不调用,就没有问题。我怀疑是不是堆栈 ...
那就重点检查读取传感器函数里面吧
您延时给的多少?在哪里加的延时代码 贴过来瞅瞅
bargagebaobei 发表于 2018-4-25 15:55
您延时给的多少?在哪里加的延时代码 贴过来瞅瞅
action_available = true;
// read position from sensor
update_current_position(getMicroSteps());
update();
HAL_Delay(100000);
我把程序拿到主循环中跑了,刚才延时10ms不行,现在延时100ms还在跑,挺慢的
springvirus 发表于 2018-4-25 15:55
那就重点检查读取传感器函数里面吧
我检查过了,没有任何的死等函数,SCI是IO模拟的,这个不是问题所在。
toofree 发表于 2018-4-25 15:40
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮 ...
工程暂时真的不大方便,我如果把其他的都搞掉,估计我自己都试不出来东西了,公司的代码不能乱发啊
楼主啊 我看不到全貌 不能确定你添加的位置对不对update_current_position(getMicroSteps());
update();这俩函数体是什么
toofree 发表于 2018-4-25 15:40
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮 ...
我这个工程hal库的,优化最低连时钟初始化代码都过不了,我也不知道原因。另外temp,a,b都是long型,没有浮点运算。
想解决问题,还没法发代码,只能自己排查了