更新时间: 2023-04-08
软件使用KeilC语言编写。
键盘检测选择采用扫描方式而不是中断方式。因为扫描方式使软件结构更加整洁,更容易管理。键盘触发的持续时间一般比较长,至少是毫秒级的。MCU的速度是MHZ级,扫描键盘绰绰有余,不需要担心实时响应问题。键盘检测的中断方式虽然响应很快,但是会导致软件的结构混乱,难以管理,内存操作复杂。
软件的核心模块在于文件的存储和编译。
文件需要以一定格式来存储。文件存储并不需要用标准的Fat或Fat32等格式,因为它并不需要携带复杂的信息。文件只需要进行方便的读、写、复制、删除、修改等操作就可以了。因此,选择采用链表的方式存储文件。另外,使用链表操作效率也是很高的。
以用户的角度看,文件中存储的内容就是一些点列表。比如孤立点,直线起点,直线终点等等。这些点在一起就可以组成一个完整的图形(详细可参见第3章的介绍)。另外文件中还有一些参数,比如运动的速度、加速度、上抬高度等等。
文件编译就是把存储在文件中的点列表信息和参数转化成运动指令发送给运动控制卡。实际上文件编译可以看做是一个如下的映射过程:
根据文件的结构和对应的运动指令之间的关系,就可以构造出映射函数的内容,实现编译的过程。