打印虎logo3D打印模型大全 免费下载
欢迎来到打印虎问答 ,这里是专业的3D打印问答社区,有问必答!

关于固件代码的几个疑问点?

0 投票
问题1.

在motion.cpp中有这么一段代码,麻烦请解释下linesCount+b>MOVE_CACHE_SIZE的意思,为什么大于cache最大值才从串口读数据。

void PrintLine::waitForXFreeLines(uint8_t b)
{
    while(linesCount+b>MOVE_CACHE_SIZE)   // wait for a free entry in movement cache
    {
        GCode::readFromSerial();
        Commands::checkForPeriodicalActions();
    }
}

 

 

问题2.

在Extrude.cpp的updateCurrentTemperature()函数中,第672行中oldraw,oldtemp,newraw,newtemp这几个变量是什么意思,后面的代码看不懂,可以把updateCurrentTemperature()函数整个过程解释下吗?
最新提问 3月 16 用户: Robotttt (120 分)

1个回答

0 投票
问题1很简单,waitForXFreeLines的意义是等待步进电机动作缓冲区空出b个动作的位置。

linesCount是现在缓冲的命令数,b是要空出的命令数,MOVE_CACHE_SIZE是缓冲区大小。

因此,如果linesCount+b超过了缓冲区大小,就要等待。直到条件满足为止。

 

问题2,粗略看了一下,这里应该是一个线性插值算法。完整解释要花比较多的时间,在这里做不了了。如果有需要,可以加我的QQ2404959972,我们提供收费服务。
最新回答 3月 20 用户: 打印虎 (7,180 分)
...