⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 momi_wide.c

📁 uCOS在PIC芯片中的移植:以PIC24HJ64GP210为例进行uCOS在Microchip芯片中的移植
💻 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 + -