如果解决获取数据抖动的问题

思路:应该设置死区

假设我们把0~100映射到0~20,那么每个单位就会对应5,我们可以把2作为死区。

即0~2映射为0,3~4即可映射为0也可映射为1,根据上一个状态来判断,这样就不会出现显示端0和1跳来跳去的情况。

代码:

复制代码
typedef unsigned int uint16_t;

#define MAP_STEP_LENGTH 5
#define MAP_DEAD_AREA	2

uint16_t GetStableData(void inputData)
{
	static uint16_t lastData = 0;
	uint16_t temp;
	uint16_t remain;

	temp = inputData/MAP_STEP_LENGTH;

	remain = inputData - temp;

	if(remain >= (MAP_STEP_LENGTH - MAP_DEAD_AREA))
	{
		if(lastData >= temp+1)
		{
			lastData = temp+1;
		}
		else
		{
			lastData = temp;
		}
	}
	else
	{
		lastData = temp;
	}
	return lastData;
}
相关推荐
piaoyiren37 分钟前
51单片机播放音乐
单片机·嵌入式硬件·51单片机
执迷不悟8231 小时前
51单片机
单片机·嵌入式硬件·51单片机
zjxtxdy1 小时前
TIM输入捕获
单片机·嵌入式硬件
西城微科方案开发2 小时前
西城微科蓝牙电子秤PCBA方案设计
单片机·嵌入式硬件
hongmai66688811 小时前
FH8856V310芯片详解:6M高清+0.5TOPS算力,赋能智能安防新方案
人工智能·单片机·嵌入式硬件·物联网·智能家居
三易串口屏14 小时前
串口屏是什么
单片机·嵌入式硬件
卖萌的斜阳16 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
单片机·网络协议·tcp/ip
woohuwan17 小时前
CST 匝数比和采样电阻怎么算?
单片机·嵌入式硬件
王光环20 小时前
STM32H750串口一直进IRQ问题解决
stm32·单片机·嵌入式硬件
2401_8541515521 小时前
STM32 选项字节与读写保护(RDP)
stm32·单片机·嵌入式硬件