📄 momi_wide.c
字号:
/**********************************************************************/
//函数名称:void momi_wide (void)
//函数作用:按摩宽度检测
//创建时间:2008.06.03
//在电平变化中断中调用
/**********************************************************************/
#include <includes.h>
#define TURE 1
#define FALSE 0
MOMI_WIDE MomiWidth; //初始化宽度信息为无效
INT8U WidthParameter = 0; //宽度参数值,0 = 无效;1=宽;2=中;3=窄;
extern OS_EVENT *MboxCN_Width;
void Momi_Wide (void)
{
if(pin_narrow ==TURE) //窄信号检测到
{
if(MomiWidth.One.Narrow == 0)//前一次为无效
{
MomiWidth.One.Narrow =1;
WidthParameter = 3; //宽度参数值
CycCheck(WidthParameter);//寬度周期檢測函数
}
else
{
MomiWidth.One.Narrow =0;
}
}
else if (pin_narrow ==FALSE )
{
MomiWidth.One.Narrow = 0;
}
if(pin_middle ==TURE) //中信号检测到
{
if (MomiWidth.One.Middle == 0)
{
MomiWidth.One.Middle = 1;
WidthParameter = 2;
CycCheck(WidthParameter);//寬度周期檢測函数
}
else
{
;
}
}
else if (pin_middle ==FALSE)
{
MomiWidth.One.Middle = 0;
}
if(pin_wide ==TURE) //宽信号检测到
{
if(MomiWidth.One.Wide ==0)
{
MomiWidth.One.Wide = 1;
WidthParameter = 1;
CycCheck(WidthParameter);//寬度周期檢測函数
}
else
{
;
}
}
else if (pin_wide ==FALSE)
{
MomiWidth.One.Wide = 0;
}
}
/**********************************************************************/
//函数名称:void CycCheck (INT8U width_temp)
//函数作用:宽度周期数检测
//创建时间:2008.06.03
/**********************************************************************/
extern INT8U width_aim; //目标宽度值,全局变量
extern INT8U MomiCycAim; //目标揉捏周期数,为全局变量
INT8U MomiCycCnt=0; //揉捏周期计数值
void CycCheck (INT8U width_temp)
{
if(width_aim == width_temp) //目標揉捏寬度=參數值
{
MomiCycCnt ++;
if(MomiCycCnt >= MomiCycAim) //揉捏周期計數=有限揉捏周期數
{
MomiCycCnt = 0; //揉捏周期計數清0
width_aim = 0; //目标宽度设为无效
OSMboxPost(MboxCN_Width,MBOX_VALID);//发布宽度到位信息
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -