c语言重复测试,C语言检测过零的方法

您所在的位置:网站首页 fsk过零检测 c语言重复测试,C语言检测过零的方法

c语言重复测试,C语言检测过零的方法

2023-10-23 14:59| 来源: 网络整理| 查看: 265

//***************************************

// 函数名称:Nop

// 函数功能:延时函数

// 入口参数:延时时间

// 出口参数:无

//***************************************

void Nopt(uint8 T_Dly)

{

while(T_Dly--);

return ;

}

//*************************************

// 函数名称:ReadZer0Pin

// 函数功能:重复读管脚电平 返回该管脚的电平状态值

// 入口参数:读该管脚的次数

// 出口参数:无

// 返回值: 该管脚的电平状态值

//***************************************

uint8 ReadZer0Pin(uint8 InValue)

{

uint8 Tcon = 0 ;

uint8 i ;

for(i=InValue;i>0;i--) //读10次

{

//Nopt(5) ;

Nopt(2) ;

if(P_ZER0 == 1)

{

Tcon ++ ;

}

}

if(Tcon > ((InValue>>1) + 1))//所读数据次数的一半以上为1 则认定该管脚为1

{

return 1 ;

}

else

{

return 0 ;

}

}

//*************************************

// 函数名称:ReadZ0

// 函数功能:检测过零信号

// 入口参数:无

// 出口参数:无

// 本检测方式为等待检测过零的方法

//***************************************

void ReadZ0(void)

{

while(1)

{

if((!ReadZer0Pin(5)) && F_PZL)

{

F_PZL = 0 ;

break ;

}

else if((ReadZer0Pin(5))&&(!F_PZL))

{

F_PZL = 1 ;

break ;

}

}

}

//---实例应用------

void main(void)

{

while(1)

{

ReadZ0() ;//如市电频率为50HZ 则10MS跑一次主循环

CmdKey() ; // 检测按键

CmdDisplay() ; //控制显示数据

.

.

.

}

}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3