ZHCU083I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
主函数为 STPOSPLAN_run(ST_POSPLAN_Handle handle),其中 handle 是具体 ST_PosPlan_t 对象的指针,该句柄需要由初始化函数 ST_POSPLAN_init 建立。可从项目的主循环调用此函数。
void STPOSPLAN_run(ST_POSPLAN_Handle handle)
参数:
编号 | 类型 | 参数 | 说明 |
---|---|---|---|
1 | ST_POSPLAN_Handle | handle | ST_PosPlan_t 对象的指针 |
ISR 函数为 STPOSPLAN_runTick(ST_POSPLAN_Handle handle),其中 handle 是具体 ST_PosPlan_t 对象的指针。此函数处理 ST_PosPlan 的时间关键代码。必须在项目的主 ISR 中调用此函数。
void STPOSPLAN_runTick(ST_POSPLAN_Handle handle)
参数:
编号 | 类型 | 参数 | 说明 |
---|---|---|---|
1 | ST_POSPLAN_Handle | handle | ST_PosPlan_t 对象的指针 |
ST_PosPlan 的状态转换图与 ST_VelPlan 的状态转换图相同,如图 4-10 所示。
表 4-21 说明了 ST_PosPlan 的状态。
起始状态 | 结束状态 | 转换条件(1)(2)(3)(4) | 操作 |
---|---|---|---|
IDLE | 保持 IDLE 状态
|
||
INIT | RES == false 并且 ENB 在上升沿 | ||
INIT | BUSY | 参数验证
|
|
BUSY | 操作规划 | ||
IDLE | RES == false 并且 ENB == True 并且 DON == true | 设置 ENB = false | |
HALT | RES == true 或 ENB == false | 加载暂停状态系统配置 | |
HALT | IDLE | HALT 状态计时器启动并且 RES == true | 加载状态 0 的配置 |
WAIT | HALT 状态计时器启动并且 RES == false | ||
WAIT | IDLE | RES == true | 加载状态 0 的配置 |
HALT | ENB == true | 加载上个状态的配置 |
表 4-22 列出了可用于执行操作(如设置、获取、添加和删除“SpinTAC 位置规划”的配置和运行时参数)的函数。Topic Link Label4.7.9 更详细地介绍了这些函数。
函数组 | 函数名称 | 说明 |
---|---|---|
初始化 | STPOSPLAN_init | 初始化 SpinTAC 位置规划 |
配置 | STPOSPLAN_setCfgArray | 设置 SpinTAC 位置规划用来存储配置的数组 |
STPOSPLAN_setCfg | 设置系统参数和保护参数 | |
STPOSPLAN_setCfgHaltState | 设置 HALT 状态的参数 | |
STPOSPLAN_addCfgState | 添加新状态 | |
STPOSPLAN_addCfgVar | 添加新变量 | |
STPOSPLAN_addCfgCond | 添加比较变量和静态值的新条件 | |
STPOSPLAN_addCfgVarCond | 添加比较两个变量的新条件 | |
STPOSPLAN_addCfgTran | 添加新转换 | |
STPOSPLAN_addCfgAct | 添加新操作 | |
运行时 | STPOSPLAN_run | 运行 SpinTAC 位置规划。可从主循环运行。 |
STPOSPLAN_runTick | 运行 SpinTAC 位置规划计时器。必须从主 ISR 运行 | |
STPOSPLAN_setVar | 设置运行期间的变量值 | |
STPOSPLAN_getVar | 获取运行期间的变量值 | |
STPOSPLAN_reset | 复位 SpinTAC 位置规划和配置 | |
STPOSPLAN_setUnitProfDone | 设置当前运行的系统配置是否完成 | |
规划修改和调试函数(提供在运行时修改规划的功能) | STPOSPLAN_getCfgStateNum | 获取已配置状态数 |
STPOSPLAN_getCfgVarNum | 获取已配置变量数 | |
STPOSPLAN_getCfgCondNum | 获取已配置条件数 | |
STPOSPLAN_getCfgTranNum | 获取已配置转换数 | |
STPOSPLAN_getCfgActNum | 获取已配置操作数 | |
STPOSPLAN_getCfg | 获取系统和保护参数 | |
STPOSPLAN_getCfgHaltState | 获取 HALT 状态的参数 | |
每个带有后缀 -add 的函数都有另外三个函数:-del、-set 和 -get,分别用于删除项目、设置项目和获取项目。这些函数允许在线修改 SpinTAC 位置规划。 |