专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
ADC转化最后一位跳
2019-12-31 19:17
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
2836
25
25
谁有ADC滤波方法。我的最后移位老跳
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25条回答
lianglee
2020-01-02 14:06
变化5个AD就更新显示。变化在5个AD以内不更新显示。
adc.index++;
if(adc.index>=32) // 读取16次
{
adc.mux[adc.state].now=adc.sum>>5;
adc.sum=0;
adc.index=0;
// 向上,或向下变化2个AD值。
if( (adc.mux[adc.state].now>(adc.mux[adc.state].next+ADC_ERRO_VALUE) ) ||
((adc.mux[adc.state].now+ADC_ERRO_VALUE)<adc.mux[adc.state].next) )
{
adc.mux[adc.state].next=adc.mux[adc.state].now;
adc.mux[adc.state].debounce=Mux_Debounce(adc.state);
}
if(DecIs(adc.mux[adc.state].debounce)==0)
{
adc.mux[adc.state].value=adc.mux[adc.state].next; // 取得AD值。
adc.mux[adc.state].tc=Read_Tab(adc.state);
if((adc.mux[adc.state].channel==0) && (adc.mux[adc.state].value<R_TAB[0][130]))
{
adc.mux[adc.state].channel=1;
adc.mux[adc.state].next=0x0000;
}
else if((adc.mux[adc.state].channel==1) && (adc.mux[adc.state].value>R_TAB[1][126-125]))
{
adc.mux[adc.state].channel=0;
adc.mux[adc.state].next=0xFFFF;
}
else
{
if(adc.mux[adc.state].value>(1024-ADC_CHECK_VALUE))
{
adc.mux[adc.state].err=ADC_OPEN; // 开路
}
else if(adc.mux[adc.state].value<ADC_CHECK_VALUE)
{
adc.mux[adc.state].err=ADC_SHORT;
}
else
{
adc.mux[adc.state].err=ADC_NORMAL; // 短路
}
}
}
adc.state++;
if(adc.state>=ADC_END)
{
adc.state=ADC_NULL;
}
Mux_Initial(adc.state);
}
复制代码
加载中...
查看其它25个回答
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
- adc.index++;
- if(adc.index>=32) // 读取16次
- {
- adc.mux[adc.state].now=adc.sum>>5;
- adc.sum=0;
- adc.index=0;
- // 向上,或向下变化2个AD值。
- if( (adc.mux[adc.state].now>(adc.mux[adc.state].next+ADC_ERRO_VALUE) ) ||
- ((adc.mux[adc.state].now+ADC_ERRO_VALUE)<adc.mux[adc.state].next) )
- {
- adc.mux[adc.state].next=adc.mux[adc.state].now;
- adc.mux[adc.state].debounce=Mux_Debounce(adc.state);
- }
- if(DecIs(adc.mux[adc.state].debounce)==0)
- {
- adc.mux[adc.state].value=adc.mux[adc.state].next; // 取得AD值。
- adc.mux[adc.state].tc=Read_Tab(adc.state);
- if((adc.mux[adc.state].channel==0) && (adc.mux[adc.state].value<R_TAB[0][130]))
- {
- adc.mux[adc.state].channel=1;
- adc.mux[adc.state].next=0x0000;
- }
- else if((adc.mux[adc.state].channel==1) && (adc.mux[adc.state].value>R_TAB[1][126-125]))
- {
- adc.mux[adc.state].channel=0;
- adc.mux[adc.state].next=0xFFFF;
- }
- else
- {
- if(adc.mux[adc.state].value>(1024-ADC_CHECK_VALUE))
- {
- adc.mux[adc.state].err=ADC_OPEN; // 开路
- }
- else if(adc.mux[adc.state].value<ADC_CHECK_VALUE)
- {
- adc.mux[adc.state].err=ADC_SHORT;
- }
- else
- {
- adc.mux[adc.state].err=ADC_NORMAL; // 短路
- }
- }
- }
- adc.state++;
- if(adc.state>=ADC_END)
- {
- adc.state=ADC_NULL;
- }
- Mux_Initial(adc.state);
- }
复制代码一周热门 更多>