📄 momitask.c
字号:
#define MOMI_TASK
#include <includes.h>
extern OS_EVENT *MboxTech_Momi; //消息邮箱
extern MSG_TECH_MOMI_STRUCT MsgTech_Momi; //手技处理任务向揉捏处理任务发送揉捏命令
extern INT8U WidthParameter; //当前宽度值,全局变量,
INT8U width_aim = 0; //目标宽度值,全局变量
INT8U MomiCycAim = 0; //目标揉捏周期数,为全局变量
#define STANDARD_SPEED 20 //默认揉捏速度
void MomiTask(void *p_arg)
{
(void)p_arg;
INT8U momierror;
MSG_TECH_MOMI_STRUCT *MomiMass; //缓存邮箱消息
while (TRUE)
{
MomiMass = OSMboxPend(MboxTech_Momi,0,&momierror);
if(MomiMass ==TECH_MBOX_STOP_RUN) //揉捏动作停止信息
{
SETUP_MOMI_CCW(TECH_SPEED_STOP);
//发布揉捏完成信息
OSMboxPost(MboxMomi_Finish,MBOX_VALID);
}
else //为手技调度函数发布的信息
{
MsgTech_Momi = *MomiMass;
width_aim = MsgTech_Momi.MassWidth;//目标宽度参数值
MomiCycAim = MsgTech_Momi.MomiRptNum; //目标周期数
if(MsgTech_Momi.MsgClass==TECH_MOMI_FRVR)
{
MomiFree ();
width_aim = 0;//目标宽度参数值
MomiCycAim = 0; //目标周期数
}
else
{
switch ( MsgTech_Momi.MsgClass )
{
case TECH_MOMI_WID_ADJ://宽度调整 1
WidthChange ();
MomiCycAim =1;
break;
case TECH_MOMI_RPT://有限揉捏 2
MomiLimit ();
break;
default:
break;
}
OSMboxPend(MboxCN_Width,0,&momierror);
SETUP_MOMI_CW(TECH_SPEED_STOP);
//发布揉捏完成信息
OSMboxPost(MboxMomi_Finish,MBOX_VALID);
}
}
}
}
void WidthChange (void) //宽度调整
{
if(WidthParameter == width_aim )
{
OSMboxPost(MboxCN_Width,MBOX_VALID);//发布宽度到位信息
}
else if (WidthParameter >= width_aim ) //正转
{
if (MsgTech_Momi.MomiSpeed == 0) //默认速度
{
SETUP_MOMI_CW(DEFAULT_SPEED_MOMI);
}
else
{
SETUP_MOMI_CW(MsgTech_Momi.MomiSpeed);
}
}
else if (WidthParameter <= width_aim ) //反转
{
if (MsgTech_Momi.MomiSpeed == 0) //默认速度
{
SETUP_MOMI_CCW(DEFAULT_SPEED_MOMI);
}
else
{
SETUP_MOMI_CCW(MsgTech_Momi.MomiSpeed);
}
}
}
void MomiLimit (void) //有限揉捏
{
if(MsgTech_Momi.MomiDirect == TECH_MOMI_CW )//正向
{
SETUP_MOMI_CW(MsgTech_Momi.MomiSpeed);
}
else if (MsgTech_Momi.MomiDirect == TECH_MOMI_CCW)//反向
{
SETUP_MOMI_CCW(MsgTech_Momi.MomiSpeed);
}
}
void MomiFree (void) //无限揉捏
{
if(MsgTech_Momi.MomiDirect == TECH_MOMI_CW )//正向
{
SETUP_MOMI_CW(MsgTech_Momi.MomiSpeed);
}
else if (MsgTech_Momi.MomiDirect == TECH_MOMI_CCW) //反向
{
SETUP_MOMI_CCW(MsgTech_Momi.MomiSpeed);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -