根据电平高低计算脉冲次数
要求:采样间隔需要小于最小脉冲时间
算法:在线程中采取当前电平状态,并和上次电平比较,不同则把电平状态赋值给上次电平状态,判断电平高或者低,统计高低电平次数或者跳转次数
代码如下:
u8 bitState; //上次电平状态
u16 RSignalCount; //电平跳转次数
u16 HRSignalCount; //高电平次数
u8 OEC0_In; //当前I/O口电平状态
if (bitState!=OEC0_In)
{
bitState = OEC0_In;
if(OEC0_In == 1)
{
//统计高电平次数
HRSignalCount++;
}
//统计电平跳转次数
RSignalCount++;
}